通常我会使用这样的东西:
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);
如何检查?
答案 0 :(得分:1)
正如@SRhm在评论部分中提到的,您只需使用:
scanf("%lf %lf", &x, &y) == 2
从用户输入中获取两个数字。 scanf - C++ Reference中的引号说明了该函数的返回值:
成功时,该函数返回参数的项目数 列表已成功填写。
scanf将返回一个整数,代表从用户输入中成功读取的变量数量。
答案 1 :(得分:0)
Some programmer dude有一个good point。不幸的是,如果仅第二个输入是双精度输入,则此技术将不起作用,但是您希望将两者与非双精度输入的情况区分开。为了区分不同的情况,您可能需要使用fgets()
函数将输入作为字符串输入,然后using sscanf()
on the string multiple times将字符串分别解析为不同的部分。
详细研究C标准库,您会发现许多很棒的库函数可以帮助您完成许多事情。