关于字符串:如何在一行中读取并用C ++中的“!!”分隔它?

How to I read in a line and delimit it with '!!" in C++?

我试过使用getline(),但是delimiter设置为"!!"会导致程序无法编译。我需要把这个字符串读入一个称为messages的字符串变量。我的代码看起来像这样…帮助?

1
2
cout <<"Enter the message>";
getline(cin, message,"!!");


1
str.substr(0, inStr.find("!!"));

例子:http:///gpoqj1ie codepad.org

解释

为什么俄罗斯的explains错误发生。


你是不是恰当使用标准函数。你是想通过delimiter而非字符串的字符的字符。如果这是你需要的delimiter getline将帮助你,不离手。

http:/ / / / / www.cplusplus.com参考字符串的字符串成员/ /

在这里你可以找到的工作代码是什么你想达到的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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;
}

你需要运行的命令或类似的东西,你g++ main.cpp && a.out情景:

输出是:

1
2
Enter the message>sadfsadfdsafsa!!4252435
sadfsadfdsafsa


delimiter getline()接受的字符,"!"是一个字符串。

1
istream& getline (istream& is, string& str, char delim);

这就是为什么你不是编译的代码

  • 通过输入的字符和字符阅读tokenize做它你自己。的标准::字符串::find方法将helpful boost.tokenizer或你可以看看。
  • 使用"!"这些参数中的getdelim getline()或()来读取的字符串等是下一步的!如果字符串不聚,继续!