#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