gets()不检查缓冲区空间,多出来的字符会覆盖堆栈原先的内容。
fgets()的第二个参数说明最大读入的字符数。如果这个参数值为n,那么fgets()就会读取最多n-1个字符或读完一个换行符为止。两个条件满足任意一个结束。
fgets()读取到换行符,就会把它存到字符串里,而不是想gets()那样丢弃它。
fgets()的第三个参数说明读哪个文件。从键盘上读数据时,可以使用stdin(代表standard input)作为参数。
char line[512];
fgets(line, sizeof(line), stdin);看书小记3(《C专家编程》),码迷,mamicode.com
原文地址:http://blog.csdn.net/pandawuwyj/article/details/24675357