gets函数与fgets函数区别
gets 与fgets的区别: gets()时不能指定缓存的长度,这样就可能造成缓存越界(如若该行长于缓存长度),写到缓存之后的存储空 间中,从而产生不可预料的后果; gets()只能从标准输入中读; gets()与fgets()的另一个区别是:gets()并不将新行符存入缓存中, fgets 将新行符存入缓存中;
puts函数与fputs函数的区别
puts()只能向标准输出中写; puts()与fputs()的另一个区别是: puts 输出时会添加一个新行符,fputs不会添加;
#include <stdio.h>
#include <string.h>
int main()
{
char readBuff[128]={0};
int len=0;
//gets(readBuff);
fgets(readBuff,128,stdin);
len=strlen(readBuff);
printf("%d\n",len);
//fputs(readBuff,stdout);
puts(readBuff);
return 0;
}
fgets 将新行符存入缓存中,所以输出的readBuff数据长度是7(abcdefg)+1(\n)等于8,
puts 输出时会添加一个新行符,所以输出的数据会换行。