我目前正在通过 Project Euler 问题作为学习 C 的一种方式,但我遇到了问题 #8,程序的实际数学和主要部分都很好,但该方法需要从大(1000 位)中读取单个数字号码,我把它放在一个文件中。
下面的代码是一个测试用例,我的文件“test.txt”是数字“123456789”。我想要做的是在单独的行上打印出每个数字。
#include <stdio.h>
int main()
{
int c = 0;
FILE *fp;
fp = fopen("test.txt", "r");
while(c != EOF)
{
c = fgetc(fp);
printf("%i\n", c);
}
fclose(fp);
}
当我运行这段代码时,我得到了输出
49
50
51
52
53
54
55
56
57
10
-1
我有一种预感,我的代码中遗漏了一些非常简单的东西,我希望它在 fgetc 位中。如果是这种情况,使用什么功能会更好,我也很好奇为什么会得到如此奇怪的输出 - 当我用我的 1000 位数字尝试它时,我发现一个类似的模式,数字在 49 到 50 左右几乎是周期性地输出。请记住,我只是 C 的初学者,干杯。