Nat*_*ibi 1 c function eof file-read
我有一个包含文本的列列表,但我只是从这个列表中获取第一行。怎么做?
#include <stdio.h>
int main()
{
FILE *fr;
char c;
fr = fopen("prog.txt", "r");
while( c != EOF)
{
c = fgetc(fr); /* read from file*/
printf("%c",c); /* display on screen*/
}
fclose(fr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您的停止条件是EOF,所有内容都将被读取到文件末尾,您需要的是读取直到找到换行符,此外EOF( -1) 应与int类型进行比较。
你需要这样的东西:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fr;
int c;
if(!(fr = fopen("prog.txt", "r"))){ //check file opening
perror("File error");
return EXIT_FAILURE;
}
while ((c = fgetc(fr)) != EOF && c != '\n')
{
printf("%c",c); /* display on screen*/
}
fclose(fr);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
这是尊重你的代码读取行char的char,你也有库功能,让您阅读整条生产线,如fgets()用于便携式一段代码,或者getline()如果你没有在Windows,或者下载一个便携版本,当然的你可以自己做这个或这个。