C ++:按标签拆分字符串,但包含空格

时间:2018-04-05 19:24:12

标签: c++ string sockets parsing client-server

我正在使用套接字处理客户端/服务器程序,我正在尝试解析输入文件。我有一个结构来存储专业,早期职业薪酬和职业生涯中期。客户端程序要求用户输入主要名称,服务器程序返回两个工资。

输入文件的问题是:

地球物理学54100 122200

认知科学54000 121900

电力工程68600 119100

它们全部被分隔为Major [TAB] Pay [Tab] Pay,并且大满贯中有空格。我想将它们存储在结构中。

对此有何解决方法?

2 个答案:

答案 0 :(得分:1)

您可以使用getline()中的第三个参数来说明要停止的字符。默认值为\n,但您也可以指定\t将其停在所需的标签处:

getline(std::cin, line, '\t');

答案 1 :(得分:0)

从这个开头:

ifstream f("c:\\temp\\test.txt");
string s;
while (getline(f, s))
{
    istringstream iss(s);
    string major, early, mid;
    getline(iss, major, '\t');
    getline(iss, early, '\t');
    getline(iss, mid, '\t');
    cout << major << '|' 
         << early << '|' 
         << mid   << endl;
}