line 时,您只是从“a b-6ren">
gpt4 book ai didi

C++ if 语句不解析空格

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

我在 C++ 控制台应用程序中的 if 语句不起作用:

string line;
cin >> line;

if (line == "a b"){
cout << "lalala";
}

当我输入“a b”时,没有任何反应。
如果我使用 if (line == "ab") 并输入 ab 就可以了。

最佳答案

std::cin 读取由空格分隔。因此,当您阅读 cin >> line 时,您只是从“a b”中读取“a”。使用 std::getline(std::cin, line) 读取整行,包括空格(不是 '\n')。

顺便说一句,您可以通过使用调试器查看变量或打印它来轻松发现此问题。在发布问题之前调试您的代码。

注意:std::cin 我指的是 operator>>,它有很多重载,作为非成员和 istream 成员。采用 std::string 的重载读取由空格分隔。

关于C++ if 语句不解析空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761655/

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