本文为原创文章,如需转载请注明原文来源,侵权必究。常见C语言面试题:这段代码有误,原因在于uses了gets()函数。gets()函数用于从标准输入读取字符串,它可能无限读取直至遇到回车键,不检查字符串长度上限,仅以回车结束。若输入超过100字符,不会检测,易引发溢出。为安全读取文件中字符串,推荐使用fgets()函数。其原型为:char *fgets(char *buf, int bufsize, FILE *stream);一般教材会解释fgets()的使用方法,这里不赘述。百度百科对此函数的解释如下:fgets()从文件结构体指针stream读取数据,每次读取一行。读入的数据存储在buf指向的字符数组,最多读取bufsize-1个字符,若不足bufsize个字符则读完即止。若行(含最后一个换行符)字符数超bufsize-1,fgets返回不完整行,但buf总以NULL字符结尾。下一次调用fgets继续读取该行。成功返回buf,失败或读完文件返回NULL。不能仅依据fgets返回值判断出错终止,应结合feof()或ferror()判断。