C++ fscanf()输出错误的值
我正在尝试从文本文件中读取整数。然而,这段代码不断地打印i的值。所以它一直在打印零,而不是文件中的整数。我该如何解决这个问题?谢谢大家!C++ fscanf()输出错误的值,c++,scanf,C++,Scanf,我正在尝试从文本文件中读取整数。然而,这段代码不断地打印i的值。所以它一直在打印零,而不是文件中的整数。我该如何解决这个问题?谢谢大家! FILE* inFile = fopen(filename,"r"); int i=0; int x; while(fscanf(inFile,"%d",&i)!= EOF){ printf("%d\n", i); usleep(30000); //fs
FILE* inFile = fopen(filename,"r");
int i=0;
int x;
while(fscanf(inFile,"%d",&i)!= EOF){
printf("%d\n", i);
usleep(30000);
//fscanf(inFile,"%d",&i);
}
fclose(inFile);
fscanf()
返回成功扫描的字段数
所以而不是
while (fscanf(inFile, "%d", &i) != EOF)
试试像这样的东西
while (fscanf(inFile, "%d", &i) == 1)
为什么返回值为1时不循环?请注意,如果遇到文件流的结尾,则返回值仅为EOF。如果在此上下文中发生其他参数匹配错误,则返回值将为0。因为您最终需要知道这一点,好的,我将更改防护。打印i的值而不是从文件中读取的整数怎么样?这是输入失败的副作用,
i
未被修改。如果文件中有非整数文本,则会发生这种情况。也有可能文件甚至没有打开。你从来没有真正测试过fopen是否成功。我知道了。非常感谢你。