gpt4 book ai didi

c - 在mac桌面上读取c中的文件11db错误

转载 作者:行者123 更新时间:2023-11-30 15:51:35 24 4
gpt4 key购买 nike

我是一名第一次学习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;
}

我试图让这个程序像它应该的那样打印出“总和”,但是当我运行它时,没有错误,但我得到的唯一输出是(11db)。

我创建了一个名为“input.txt”的文件并将其保存到桌面,但它不起作用。

文件“input.txt”包含:

12345

我不知道我是否应该以某种方式在某个地方定义文件路径或在哪里/如何执行此操作。

非常感谢任何帮助。

谢谢!

最佳答案

我的猜测是该错误是因为打开文件失败。您应该检查 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;
}

关于c - 在mac桌面上读取c中的文件11db错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008917/

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