gpt4 book ai didi

c - 使用 getchar() 时多次迭代健全性检查,我该如何避免?

转载 作者:行者123 更新时间:2023-11-30 16:27:21 25 4
gpt4 key购买 nike

我目前正在制作一个抛射运动计算器。没有什么 super 复杂的,但是我正在使用如下的健全性检查:

printf("Please enter initial velocity: ");
while (!scanf("%lg", &velocity)|| velocity<0){
getchar();
printf("Velocity is not valid, enter again: ");
}

它可以完美地停止负数和单个字符,但是当用户输入包含多个字符的单词时,第二个 printf 将重复等于单词中的字符数。

当用户输入一个单词时,健全性检查仍然按其应有的方式运行,但只运行一次,如何做到这一点?

最佳答案

循环调用getchar(),直到看到换行符:

printf("Please enter initial velocity: ");
while (!scanf("%lg", &velocity)|| velocity<0){
while (getchar() != '\n');
printf("Velocity is not valid, enter again: ");
}

关于c - 使用 getchar() 时多次迭代健全性检查,我该如何避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765275/

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