gpt4 book ai didi

C++ 检查用户输入是否为 float

转载 作者:行者123 更新时间:2023-12-04 16:36:37 24 4
gpt4 key购买 nike

我只是想检查用户输入是否是 float ,如果用户输入一个字符串然后我希望他们做某些 Action ,它可以用整数来完成,但是当我把它变成 float 时。它会给出一条消息。

error: invalid operands of types 'bool' and 'float' to binary 'operator>>'|

下面是我的代码。

#include <iostream>

int main()
{
float num;
std::cout << "Input number:";
std::cin >> num;
if (!std::cin >> num){
std::cout << "It is not float.";
}
}

最佳答案

一元运算符 ! 有一个 higher precedence>>>,所以表达式

!std::cin >> num

被解析为

(!std::cin) >> num

它试图调用 operator>>(bool, float)。没有定义这样的重载,因此出现错误。

看起来你是想写

!(std::cin >> num)

请注意,由于 !std::cinimplicitly promoted,您的代码仅在 numint 时“有效”到 int。您实际上是在调用 operator>>(int, int),它将 !std::cin 的整数值右移到右边的 num次。这无疑不是您想要的。

关于C++ 检查用户输入是否为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69127127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com