在gets()和scanf()里踩过的坑! 在做华为机试的时候,持续读取输入会使用到以下语句: while(scanf("%s",&var)!=EOF) { … } 如果将此时的scanf换成gets,即: while(gets(var)) { … } 则代码有可能跑不过所有测试case,当输入仅为一个换行符或者空格或者tab时,gets()会将其视为一个字符的字符串。 简而言之,gets能读取空格、换行、tab等特殊字符,而scanf不能。