gpt4 book ai didi

C:整数打印不正确

转载 作者:行者123 更新时间:2023-11-30 18:30:52 25 4
gpt4 key购买 nike

(大家好。我尝试寻找我遇到的问题,但到目前为止似乎找不到解决方案。我对编程完全陌生,目前正在学习 C,但我是一个十足的菜鸟,所以我如果我犯了一个愚蠢的错误,请提前道歉。)

问题是:我尝试扫描 4 个整数并使用 while 循环打印它们的值。问题是,这些数字被打印为疯狂的长数字,而不是输入的整数。我尝试扫描和打印一个整数,它打印得很好,但是一旦我使用多个整数,它就开始乱七八糟。

这是我的代码:

#include <stdio.h>

int main()
{
int i, n1,n2,n3,n4;
printf("Enter 4 numbers.");
for(i=0;i<4;i++)
{
printf("\n\nEnter number %d: ", i+1);
scanf("%d,%d,%d,%d", &n1,&n2,&n3,&n4);
printf("%d,%d,%d,%d", n1,n2,n3,n4);
}

}

最佳答案

有两件事:

  1. scanf() 中给出的输入格式应与输入完全匹配,才能成功扫描 。 [您的输入中需要包含 ,]
  2. 始终检查 scanf() 是否成功,以确保正确扫描值。 scanf() 返回成功匹配和扫描的项目数。

所以,你应该将代码更改为类似的内容,

 if ( scanf("%d,%d,%d,%d", &n1,&n2,&n3,&n4) == 4)
{
// use n1, n2, n3, n4
}
else
//don't use them, return some error.

注意:始终初始化局部变量。很多时候,它会将您从先读后写场景的未定义行为中拯救出来。

此外,[也许?] for 循环不是必需的,因为您一次扫描所有四个数字。

关于C:整数打印不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com