C++ 字符串输入作为 if/else 语句条件

标签 c++ string

我看到了一个与我类似的问题:C++ string variables with if statements

他的情况和我的唯一区别是,我希望条件是如果带空格的字符串与某个字符串匹配。

这是我的代码:

#include <iostream>
#include <string>
int main()
{
    using namespace std;
    string input1;
    cout << "Welcome to AgentOS V230.20043." << endl;
    cout << "To log in, please type \"log in\"" << endl;
    cin >> input1;
    if (input1 == "log in")
    {
        cout << "Please enter your Agent ID." << endl;
    }
    return 0;
}

出于某种原因,if 语句没有提取字符串。但是,如果条件是:

if (input1 == "login"

它有效。我找不到一种方法来使用带有条件的字符串。我想知道 if 语句是否可以,但 cin 正在删除空格。

谢谢!

最佳答案

您应该使用标准函数 std::getline 而不是 operator >>

例如

if ( std::getline( std::cin, input1 ) && input1 == "log in" )
{
    std::cout << "Please enter your Agent ID." << std::endl;
}

关于C++ 字符串输入作为 if/else 语句条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30821036/

相关文章:

c++ - 类模板与成员模板

c++ - 错误34;套接字编程结果太长

c++ - 您最喜欢用 C/C++ 访问多个不同数据库(MySQL、Oracle...)的跨平台解决方案是什么?

python - 如何为以下语句使用格式函数

java - 字符串比较混淆

java - 从 .data 文件读取到 Java - 如何将信息存储在数组数组中?

C++ libpng 转换为 GLFWimage 转换为 GLFWcursor 导致失真和间歇性行为

c++ - 这是无效的 C++ 吗?

string - dw 和 dd 与字符串的 db 指令有何不同?

java - 逆向Java完整文档