首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++:按制表符拆分字符串,但包含空格

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

Stack Overflow用户
提问于 2018-04-05 19:24:11
回答 2查看 946关注 0票数 0

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

输入文件的问题是:

地球物理学54100 122200

认知科学54000 121900

电力工程68600 119100

它们都被分隔为MajorTABPayTabPay,而专业在它们中也有空格。我想把它们都存储在结构里。

有什么解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-06 00:21:57

从以下几个方面开始:

代码语言:javascript
运行
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-05 19:35:36

您可以使用getline()中的第三个参数来说明要停止的字符。默认情况下是\n,但也可以指定是\t让它停止在您想要的选项卡上:

代码语言:javascript
运行
复制
getline(std::cin, line, '\t');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49680030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档