#include<stdio.h>
void main(){
char str[100];
char letter;
letter=getchar();
printf("%c",letter);
gets(str);
//Rest of code
}
执行时,代码跳过gets(str)行。但是当我用scanf替换get时,它就可以工作。任何具体原因为什么不起作用? 我使用的是gcc 4.7.2。输入使用gets不起作用,但使用scanf
那么有什么办法可以让get()忽略换行符......或者也许从缓冲区中删除换行符。 PS:我尝试过使用fflush,但后来也面临同样的问题 – psyc0der 2013-04-30 12:45:04
您可以再次使用getchar()来使用它。我更新了我的答案。 fflush(stdin)仅适用于MSVS,在其他编译器/平台上它是未定义的行为。 – 2013-04-30 12:47:30
谢谢了。这很清楚 – psyc0der 2013-04-30 12:52:38