1.gets()函数
------------------------------------------------------------------
读取整行输入,直至遇见换行符,丢弃换行符,存储其他字符,并在末尾添加空字符使其成为一个c字符串。
经常和puts()一起使用。
/* getsputs.c -- using gets() and puts() */
#include <stdio.h>
#include<stdlib.h>
#define STLEN 81
int main(void)
{
char words[STLEN];
puts("Enter a string, please.");
gets(words); // typical use
printf("Your string twice:\n");
printf("%s\n", words);
puts(words);
puts("Done.");
printf("*******************\n");
system("pause");
return 0;
}
缺点:
gets()只有一个参数,不检查数组空间是否够用,会有缓冲区溢出的情况(buffer overflow),多余的字符占用尚未分配的空间,会导致异常。
2.fgets()函数
------------------------------------------------------------------
/* fgets1.c -- using fgets() and fputs() */#include <stdio.h>
#include<stdlib.h>
#define STLEN 14
int main(void)
{
char words[STLEN];
puts("Enter a string, please.");
fgets(words, STLEN, stdin);
printf("Your string twice (puts(), then fputs()):\n");
puts(words);
fputs(words, stdout);
puts("Enter another string, please.");
fgets(words, STLEN, stdin);
printf("Your string twice (puts(), then fputs()):\n");
puts(words); fputs("###",stdout);
fputs(words, stdout); puts("###");
puts("Done.");
printf("******************\n");
system("pause");
return 0;
}