引用:用fgets执行之后,读取了文件中的一行,这时文件位置指针是自动指向文件的下一行的开头吗,还是指向当前行的结尾?如果一行的字符串没读取完会怎样?下次使用fgets读取同一个文件时会怎样?
百度:
从文件结构体指针stream中读取数据,每次读取一行。
测试结果:
如果一行的字符串没读取完会,下一次会接着上一次读取;
如果读完了,直接从下一行开头开始。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void system_init(const char *config_file_name)
{
FILE *fp;
if ((fp = fopen(config_file_name, "r")) == NULL)
{
perror("fp:fopen");
exit(-1);
}
char file_name_usr[FILE_NAME_LEN+1];
char file_name_stu[FILE_NAME_LEN+1];
fgets(file_name_usr, FILE_NAME_LEN + 1, fp);
fgets(file_name_stu, FILE_NAME_LEN + 1, fp);
printf("file_name_usr is %s\n", file_name_usr);
printf("file_name_stu is %s\n", file_name_stu);
}
函数成功将返回buf,失败或读到文件结尾返回NULL。