我必须使用getchar()
函数逐个获取多个字符。
我必须在使用该函数后清理缓冲区,但flushall()
不会这样做。在函数的第二次迭代之后,它获得'\n'
作为输入。我尝试使用fflush()
,_flushall()
,但没有人成功这样做。这是什么原因?请帮忙。
注意:我必须使用getchar()
。
int i;
char c;
for (i = 0; i < 5; i++)
{
c = getchar();
printf("%c", c);
_flushall();
}
答案 0 :(得分:2)
如果你想在输入缓冲区中丢弃垃圾,一个好方法就是
public ActionResult Create()
{
var myItem = new myItem();
myItem.Description = string.Format("Item Created on {0:MM/dd/yyyy}", DateTime.Today);
return View(myItem);
}
这将丢弃并包括下一个换行符或文件结尾,通常你想要的。
如果您正在尝试编写一个响应单击键的程序,当用户按下每个击键时,这对您不起作用,但这是因为整个int c;
do c = getchar(); while (c != EOF && c != '\n');
界面对您不起作用;您将需要使用其他内容,例如ncurses或GUI“小部件”库。