由于C语言没有库函数,所以在读取文件一行数据的时候,需要自己,经过查资料并且验证有以下可行方法

第一种方法

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main()
{
const char *filePath = "test.txt";
char data[100];
FILE *fp=fopen(filePath,"r");
if(!fp)
{
printf("can't open file\n");
}
while(!feof(fp))
{
fscanf(fp,"%s",&data);
printf("%s",data);
printf("\n");
}
printf("\n");
fclose(fp);
return 0;
}

这种方法是可以实现按行读取数据的,但是遇到空格就会退出,导致不问读取完整的一行数据。以下这种方法完美解决。

第二种方法

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main()
{
const char *filePath = "test.txt";
char data[100];
FILE *fp=fopen(filePath,"r");
if(!fp)
{
printf("can't open file\n");
}
while(!feof(fp))
{
fscanf(fp,"%[^\n]",&data);
printf("%s",data);
printf("\n");
}
printf("\n");
fclose(fp);
return 0;
}

这种方法好处就在于使用了“% [ ^ \n ]” ,我们可以知道“% [ ^ \n ]”和“% [ ^ ]”的含义了。符号^ 表示取反的意思。[ ^ ]表示除了空格,所有的字符都可以读取; [ ^ \n ]则表示除了换行符,所有的字符都可以读取。