[英]How do I check if a binary number, provided by continuous user input, is divisible by 5 each time a digit is entered?
[英]How to check if user entered an input or not
我使用此代码来允许为变量输入数值:
float day;
printf("Day?: ");
scanf("%f",&day);
如果用户未为“天”输入任何值,我如何使程序产生错误消息?
尝试这个:
if(scanf("%f",&day) != 1)
printf("Error");
使用fgets()/sscanf()
char buf[100];
fgets(buf, sizeof(buf), stdin);
if (sscanf(buf, "%f", &day) != 1) {
if (buf[0] == '\n')
HandleNothingInput();
else
HandleBadInput();
}
}
fgets()
通常读取直到输入Enter或'\\n'
。 通过使用sscanf()
解析缓冲区,很容易检测到空输入(“用户未输入ANY值”),错误输入(“ abc”),因为scanf()
的结果将为0。
替代方法:如果要确保没有输入其他数据,可以使用一个哨兵:
int ch;
if (sscanf(buf, "%f %c", &day, &ch) != 1) {
atof()
是另一种方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.