标准IO库以行为单位进行输入输出操作
注意:永远不要使用gets和puts
fgets/gets
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
char *gets(char *s);
//Returns: buf if OK, NULL on EOF or error
fgets从stream流中读取数据放入到s中。1. 如果遇到换行符,则完成一次读取 或者 2. 数据量达到size,那么会读入size-1个字符
gets没有size的限制,因此很容易溢出,请永远不要使用gets
-
gets获取的字符串结尾 -(不存在)换行符(丢弃了)
fgets获取的字符串结尾存在换行符
fputs/puts
#include <stdio.h>
int fputs(const char *s, FILE *stream);
int puts(const char *s);
//Returns:non-negative value if OK, EOF on error
fputs将以null结尾的字符串输出到指定的流中,结尾的null并没有写入.
puts将以null结尾的字符串写入标准输出,结尾的null并没有写入.puts和gets一样不安全。
*
puts输出的内容结尾 + 换行符
fputs输出的内容结尾 no 换行符

本文介绍了标准IO库中fgets和puts等函数的功能与用法,强调了避免使用易导致溢出的gets和puts函数的重要性,并详细解释了fgets与gets、fputs与puts之间的区别。
4098

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



