【发布时间】:2012-12-05 18:12:54
【问题描述】:
我是 c 编程新手,我的程序遇到了这个问题
我有一个从输入缓冲区获取字符的循环
while(c = getchar()){
if(c == '\n') break;
if(c == '1') Add();
if(c == '2') getInput(); // this is where the headache starts
....
}
这里是 getInput() 函数
void getInput()
{
char ch = getchar();
if(ch == '1') doSomething();
....
}
但是当从 getInput() 函数调用 getchar() 时,它只获取上次调用 getchar() 后留在输入缓冲区中的字符。我想要它做的是获取新输入的字符。
我已经在谷歌上搜索了两个小时,以寻找一种清除输入缓冲区的好方法,但没有任何帮助。因此,非常感谢您提供指向教程或文章或其他内容的链接,如果有其他方法可以实现,请告诉我。
【问题讨论】:
标签: c getchar input-buffer