Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:按制表符拆分字符串,但包括空格_C++_String_Sockets_Parsing_Client Server - Fatal编程技术网

C++ C++;:按制表符拆分字符串,但包括空格

C++ C++;:按制表符拆分字符串,但包括空格,c++,string,sockets,parsing,client-server,C++,String,Sockets,Parsing,Client Server,我正在使用套接字开发一个客户机/服务器程序,并试图解析输入文件。我有一个结构分别存储专业、职业生涯早期薪酬和职业生涯中期。客户端程序要求用户输入专业名称,服务器程序返回这两个名称 输入文件的问题是: 地球物理学54100 122200 认知科学54000 121900 电力工程68600 119100 它们都被分隔为专业[TAB]支付[TAB]支付,专业中有空格。我想将它们存储在结构中 有什么解决方案吗?您可以使用getline()中的第三个参数来说明要在哪个字符处停止。默认值为\n,但您也可以

我正在使用套接字开发一个客户机/服务器程序,并试图解析输入文件。我有一个结构分别存储专业、职业生涯早期薪酬和职业生涯中期。客户端程序要求用户输入专业名称,服务器程序返回这两个名称

输入文件的问题是:

地球物理学54100 122200

认知科学54000 121900

电力工程68600 119100

它们都被分隔为专业[TAB]支付[TAB]支付,专业中有空格。我想将它们存储在结构中


有什么解决方案吗?

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

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

从以下内容开始:

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;
}
ifstream f(“c:\\temp\\test.txt”);
字符串s;
while(getline(f,s))
{
istringstream iss(s);
弦乐大调,早期,中期;
getline(国际空间站,大调,'\t');
getline(iss,早期,'\t');
getline(iss,mid,'\t');

cout提示:
std::getline(输入文件,文本'\t')
。的可能副本的可能副本,以便打印出除每个专业的第一个字母以外的所有内容。如果我从第二行删除空格,我会得到:地球物理54100 122200这是我作为输出得到的:专业:石油早期:中期:专业:工程早期:94600中期:专业:175500但我必须将数据推入t我只是用cout来看看它是否被拆分并按我想要的方式存储。