我是 C 编程的新手,我目前有这个简单的代码,它要求用户输入一个 float ,然后用这个值打印出来,但我想知道如何制作它以便它给出一个如果用户输入任何内容,但不是数字。我知道您需要使用 if 和 else 语句,但不确定参数部分使用什么......
到目前为止我的代码(在我找到如何处理非数字输入之前还没有完成代码):
#include <stdio.h>
int main()
{
float input;
printf("Hello please enter a float number!\n";
scanf( "%f", &input);
}
我知道您需要使用 if 和 else 语句,但我来自 Python 背景,所以语法完全不同......正在寻找有关如何处理此问题的指导!请不要太高级,我正在寻找简单的东西。
编辑:
谢谢大家的精彩回复!它真的帮助我了解更多不同的方式来处理这些问题! :D
最佳答案
虽然 doukremt 是正确的,因为您可以检查 scanf
的返回值以检测此特定错误,但 scanf
实际上只是用于快速而肮脏的解决方案,并且当您想要更稳健的行为时,会有很多失败。
我建议将整行输入读取为字符串(例如,使用 fgets
),然后使用 strtof
或一些类似的函数将其转换,它会告诉您在转换失败时使用它的第三个参数。然后您可以明确检查每个可能的错误情况并适本地处理它们。
关于c - 我应该怎么做,如果用户输入我不想要的东西,它会在 C 中触发一条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25800576/