我是第一次学习C语言的学生。我输入了教授给全班同学的一个例子,这个例子应该是从一个名为"input.txt"的文件中读取一些整数
这是代码:
#include <stdio.h>
int main() {
FILE *ifp;
int num = -1, sum = 0;
ifp = fopen("input.txt", "r");
while (num!= 0) {
fscanf(ifp, "%d", &num);
sum +=num;
}
fclose(ifp);
printf("The sum is %d.n", sum);
return 0;
}
我正试图让这个程序像它应该的那样打印出"sum",但当我运行它时,没有错误,但我得到的唯一输出是(11db)。
我创建了一个名为"input.txt"的文件并将其保存到桌面上,但它不起作用。
文件"input.txt"包含:
12.3.4.5
我不知道我是否应该在某个地方定义文件路径,或者在哪里/如何定义。
非常感谢您的帮助。
谢谢!
我猜这个错误是因为打开文件失败。您应该检查fopen是否返回非NULL。打开文件是一项经常失败的操作。例如:
ifp = fopen("input.txt", "r");
if (ifp == NULL) {
fprintf(stderr, "Couldn't open the file for reading.n");
}
除非给出以"/"开头的完整路径名,否则fopen会打开进程当前工作目录中的文件,而该目录可能不是桌面。
此外,当您到达文件的末尾时,fscanf将返回值EOF。变量num将不会设置为零。这是一种读取整数文件的方法:
while (fscanf(ifp, "%d", &num) == 1) {
sum += num;
}