我正在cygwin環境中使用flex和bison生成一個簡單的編譯器,生成C代碼作爲輸出,並且生成了一串代碼,用於讀取兩個整數,後面跟着一個char。使用C讀取輸入使用C
雖然我以爲我知道基本的C代碼,但我在下面的代碼中遇到了一個問題,我輸入了兩個整數,但它在讀取整數之後從不要求字符!
這樣處理生成代碼的最好方法是什麼?我應該在執行掃描還是getchar()之前總是清除字符緩衝區,或者我只是在某處犯了一個錯誤!
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
int a = 0;
int b = 0;
char f = '\0';
scanf("%d",&a);
scanf("%d",&b);
f = getchar();
fflush(stdin);
return EXIT_SUCCESS;
}
沒有編譯這個,我猜想鍵盤上_enter_的最後按下被'getchar()'消耗掉了。 – stacker