Mat*_*hew 5 c validation integer input
我有一个程序接受用户的整数,并在加法操作中使用该数字.
我用来接受这个号码的代码是这样的:
scanf("%d", &num);
Run Code Online (Sandbox Code Playgroud)
如何验证输入,以便用户输入带小数点的字母或数字时,屏幕上会显示错误消息?
md5*_*md5 10
你应该使用scanf返回值.来自man scanf:
回报价值
这些函数返回成功匹配和分配的输入项的数量,这可以少于提供的数量,或者在早期匹配失败的情况下甚至为零.
所以它可能看起来像这样:
if (scanf("%d", &num) != 1)
{
/* Display error message. */
}
Run Code Online (Sandbox Code Playgroud)
请注意,它不适用于"带小数点的数字".为此,您应该使用解析等strtol.它可能有点复杂.