<分区>
我正在编写一个 C 程序,提示用户输入文件名,输入时它显示前 20 行,然后等待用户输入。所以,一切都很好,只是它显示了 40 行而不是 20 行,所以我将行数减少到 1,它显示了 2 行。我什至尝试使用 while 循环而不是 for 循环,但结果仍然相同。
#include <stdio.h>
int main (void)
{
FILE *in;
char file[81], buffer[81];
int flag = 1, c, i;
printf("File: ");
scanf("%s", file);
if ((in = fopen (file, "r")) == NULL) {
printf("Unable to open the file: %s\n", file);
return 1;
}
while (flag) {
for (i = 0; i < 1; i++) {
if (fgets (buffer, 80, in) != NULL) {
printf("%s", buffer);
} else {
flag = 0;
}
}
c = getchar();
if (c == (char) 'q')
flag = 0;
}
fclose (in);
return 0;
}
Stephen G Kochan 的 C 语言问题,第 16 章,问题 6
注意:我不希望有其他方法来解决问题,我只是想知道是什么导致了这个问题。