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);才行。
本文详细解析fgets和fputs函数的功能、工作原理及使用场景,包括如何从流中读取数据并将其写入文件,特别关注了换行符的处理与字符串的正确填充。同时提供实例代码,帮助开发者在实际项目中灵活应用这两个核心I/O函数。
703

被折叠的 条评论
为什么被折叠?



