我正在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