c语言用fgets程序错误,C语言文件操作中 fgets与fputs 函数详解

C语言文件操作中 fgets、fputs 函数详解

先给出api

fgets

语法:

#include

char *fgets( char *str, int num, FILE *stream );

函数fgets()从给出的文件流中读取[num - 1]个字符并且把它们转储到str(字符串)中. fgets()在到达行末时停止,在这种情况下,str(字符串)将会被一个新行符结束. 如果fgets()达到[num - 1]个字符或者遇到EOF, str(字符串)将会以null结束.fgets()成功时返回str(字符串),失败时返回NULL.

自己理解

1、每次读取一行,如果读取的一行字符数 len  > bufsize-1,则 buf[ bufsize-1 ] = '0'

文件句柄指向第bufsize的位置。

2、每次读取一行,如果读取的一行字符数 len = bufsize-1,则 buf[ bufsize-1 ] = '0'

文件句柄指向第bufsize的位置。

3、每次读取一行,如果读取的一行字符数  len < bufsize-1,则 buf [ len-1 ] = '\n' , buf [ len ] = '\0'

文件句柄指向下一行的首位置。

验证代码:

int i=0;

FILE *fp;

char buff[5];

//将数组赋值为9,便于后面与赋值的地方比较

memset(buff,9,sizeof(buff));

char *fName = "d:/123.

你可能感兴趣的:(c语言用fgets程序错误)