gpt4 book ai didi

c - 验证输入并清除键盘缓冲区

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:51 25 4
gpt4 key购买 nike

如果在此代码块中输入一个或多个字符,我将如何清除缓冲区。

int x = 1;
float grade = 0.0;

do
{
printf ("Enter a grade for quiz %d: ", x);
scanf ("%f", grade);

if (grade >= 1 && grade <= 10) break;

printf ("Entry not valid. Please try again\n");

} while (1);

我的导师坚持要我们使用 fflush(stdin)。我知道这行不通,所以我叫他出来了。我还可以通过哪些其他方式来验证是否输入了数字。

最佳答案

void flush_stdin ()
{
char c;
do
{
c = get(stdin);
}while(c != EOF && c != '\n');
}

我在自己的代码中使用它,基本上,读取标准输入中的每个字符,直到遇到一个表明它现在为空的标志。

我也会敦促避免使用 scanf,但更喜欢使用 freadsscanf , 所以你可以限制输入字符的数量,避免缓冲区溢出和其他讨厌的事情。

关于c - 验证输入并清除键盘缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com