fgetc不';不要返回我文件的最后一行
这是我第一次写C,我正试图打开一个文件并读取它的内容。我使用fgetc获取.txt文件的行,但是它只返回内容,没有返回.txt文件的最后一行。如何确保fgetc返回最后一行fgetc不';不要返回我文件的最后一行,c,fgetc,C,Fgetc,这是我第一次写C,我正试图打开一个文件并读取它的内容。我使用fgetc获取.txt文件的行,但是它只返回内容,没有返回.txt文件的最后一行。如何确保fgetc返回最后一行 FILE *fp = fopen("nums.txt", "r"); if(fp) { int c = fgetc(fp); while (c != EOF) { printf ("%c", c); c = fgetc(fp); } } 预期结果是: 12 13
FILE *fp = fopen("nums.txt", "r");
if(fp)
{
int c = fgetc(fp);
while (c != EOF)
{
printf ("%c", c);
c = fgetc(fp);
}
}
预期结果是:
12
13
14
但它会像这样返回到控制台:
12
13
您可以使用before循环来禁用缓冲。与EOF相比,要求c是一个int。如果添加
fflush(stdout)会发生什么代码>在循环之后。我怀疑您的输入文件没有以换行符结尾,因此您输出到stdout
的最后一个字符被缓冲,并且没有显示。请尝试在终端中运行您的程序,而不是使用IDE(代码块,否?)删除最后一行输出是已知的IDE错误。输入文件可能不会以换行符结尾。不管你用什么来查看脚本的输出,直到换行符被打印出来,才会显示一行。更新:我用terminal来运行程序,但结果是在循环的末尾添加fflush(stdout)
。