繁体   English   中英

c - 如何检查用户输入是否在C中重复?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM