ai didi

c++ - 为什么我不能在 IF 语句中比较三个不同的值? CPP

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:29 24 4
gpt4 key购买 nike

假设我有下一个代码示例:

std::string MyString("Michael");
std::cout << (str.find_first_of('=') == str.find_last_of('=') == str.npos);

前面的代码应该给我 1,因为 str 成员函数的前两个返回值将是:

4294967295

这也是 npos 值。但是,屏幕上打印的是“0”。

另一个奇怪的是,下一段代码:

std::string MyString("Michael");
std::cout << (str.find_first_of('=') == str.find_last_of('=')) << std::endl;
std::cout << (str.find_last_of('=') == str.npos) << std::endl;

为两个输出打印“1”。

有人可以解释一下为什么我不能像上面那样比较 3 个值吗?

最佳答案

你不能像那样链接 bool 比较(当然你可以,但它不会像你想的那样)。它需要是:

std::cout << (str.find_first_of('=') == str.npos && str.find_last_of('=') == str.npos);

即两个比较由逻辑 AND 连接。

关于c++ - 为什么我不能在 IF 语句中比较三个不同的值? CPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942995/

24 4 0
文章推荐: c++ - 返回 vector 中结构位置的索引
文章推荐: c++ - 如何确保销毁父实例成员?
文章推荐: java - 尝试从 android 将图像上传到我的服务器
文章推荐: php - 将 .html 页面重命名为 .php 会影响我的网站 google 排名吗?
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com