如何在 C++ 中读取一行并用 '!!" 分隔它?

MyS*_*ver 5 c++ string cin getline delimiter

我尝试过使用getline(),但delimiter设置为“ !!”会导致程序无法编译。我需要将字符串读入名为消息的字符串变量中。我的代码看起来像这样......帮助?

cout << "Enter the message> ";
getline(cin, message, "!!");
Run Code Online (Sandbox Code Playgroud)

lpa*_*app 2

您没有正确使用 std 函数。您试图传递一个字符串作为分隔符而不是一个字符。如果这是您需要的分隔符,getline 不会立即帮助您。

http://www.cplusplus.com/reference/string/string/getline/

在这里您可以找到您想要实现的目标的工作代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string message;
    cout << "Enter the message>";
    cin >> message;
    cout << message.substr(0, message.find("!!")) << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

您需要针对您的场景运行此命令或类似命令:g++ main.cpp && a.out

输出是:

Enter the message>sadfsadfdsafsa!!4252435
sadfsadfdsafsa
Run Code Online (Sandbox Code Playgroud)