[英]How to check if user inputs are double in C?
通常我会使用这样的东西:
double value;
if (scanf("%lf", &value) == 1)
printf("It's float: %f\n", value);
else
printf("It's NOT float ... \n");
但这次我需要一次读取两个数字
scanf("%lf %lf", &x, &y);
我如何检查?
正如评论部分中提到的@SRhm,您只需使用:
scanf("%lf %lf", &x, &y) == 2
从用户输入中获取两个数字。 来自scanf - C++ Reference 的引用解释了函数的返回值:
成功时,该函数返回成功填充的参数列表的项目数。
scanf 将返回一个整数,表示从用户输入中成功读取的变量数。
一些程序员老兄有一个很好的观点。 不幸的是,如果只有第二个输入是双精度,这种技术将不起作用,但您想将其与两者都不是双精度的情况区分开来。 为了区分不同的情况,您可能希望使用fgets()
函数将输入作为字符串接收,然后在字符串上多次使用sscanf()
将字符串分别解析为不同的部分。
仔细研究C标准库,你会发现很多很棒的库函数可以帮助你做很多事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.