#include <stdio.h>
/**
char* fgets(char*, int, FILE*);
第一个参数 存放读取到的字符
第一个参数 一次最多读取多少个字符 当碰到换行符时会返回
第三个参数 读取的文件指针
成功,则返回第一个参数buf;
在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。[1]
int feof(FILE*) 文件结束返回非0
*/
void read_line_1(){
FILE *f =fopen("fgets_fputs函数.c","r");
int buf[50]={0};
if(f!=NULL){
while(!feof(f)){
fgets(buf,50,f);
//把读取的字符输入到屏幕
fputs(buf,stdout);
}
if(feof(f)){
fprintf(stdout,"\nfeof reading file finished\n");
}
fclose(f);
}else{
printf("fail to open file");
}
}
void read_line_2(){
FILE *f =fopen("fgets_fputs函数.c","r");
int buf[50]={0};
int read_num_per=6;//实际每次读取的字符个数是 read_num_per-1
if(f!=NULL){
//一个字符一个字符的读取
fgets(buf,read_num_per,f);
//把读取的字符输入到屏幕
printf("读取的字符串是:%s\n",buf);
fgets(buf,read_num_per,f);
//把读取的字符输入到屏幕
printf("读取的字符串是:%s\n",buf);
fgets(buf,read_num_per,f);
//把读取的字符输入到屏幕
printf("读取的字符串是:%s\n",buf);
//把读取的字符输入到屏幕
fgets(buf,read_num_per,f);
printf("读取的字符串是:%s\n",buf);
fgets(buf,read_num_per,f);
//把读取的字符输入到屏幕
printf("读取的字符串是:%s\n",buf);
fclose(f);
}else{
printf("fail to open file");
}
}
int main(int argc, char *argv[])
{
read_line_1();
return 0;
}