linux c中fgets(),fputs()

海绵宝宝的欧尼 2012-01-15

fgets (buf, size, fp)

从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL

其行为方式如下:

(1)遇到换行或文件结束EOF则返回。

(2)按行读取。

(3)每一行结束处的换行字符‘\n’也算该行字符。

(4)对于大小为size的buf,最多只读取size-1个字符。

(5)自动地把buf中最后一个字符(通常是换行符)的后面一个字节填充零结束符('\0')。

因此如果想把buf中的换行符去掉,可以这样:buf[strlen(buf)-1]='\0';当前前提是buf足够大,可以容纳完整的一行(包括最后的那个换行符)。

fputs(str,fp)

(1)把str中零结束符之前的全部文字输入到文件中。

(2)输入完成后,不会增加额外的特殊字符,如换行符等。

如果想输入完str后,就换行,则应该在上述调用后,再调用fputc('\n',fp);才行。

相关推荐