标准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 换行符