首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c++中的向量在新行上显示文本文件中的列

使用c++中的向量在新行上显示文本文件中的列
EN

Stack Overflow用户
提问于 2017-04-08 15:23:51
回答 1查看 53关注 0票数 0

我一直试图在不同的行上显示2行6列。我尝试过不同的方法,但似乎都没有用。这就是我现在拥有的:

代码语言:javascript
复制
void Travel::LoadDest()
{

    ifstream file("worlddeals.txt");
    vector<vector<string>>data;

    if (file) {
        string line;
        while (getline(file, line)) {
            data.push_back(vector<string>());

            stringstream split(line);
            string value;

            while (split >> value)
                data.back().push_back(value);
        }
    }
    for (int i = 0; i < data.size(); i++) {
        for (int j = 0; j < data[i].size(); j++)
            cout << data[i][j] << endl;

        cout << '\n';
    }
}

在我的.txt中有:

科孚Tab 5* Gelina村水上公园Tab 2017年5月21日Tab Luton Tab 10夜Tab Holguin Tab 5* Paradisus Rio De Oro Tab 2017年5月22日Tab曼彻斯特Tab 10夜Tab

我想要输出的是:

科孚 住宿: 5* Gelina村水上公园 启程日期:2017年5月21日 离境机场:卢顿 持续时间: 10晚 董事会基础:所有包括在内

霍尔金 住宿: 5* Paradisus Rio De OroStar 启程日期:2017年5月22日 出发机场:曼彻斯特 持续时间: 10晚 董事会基础:所有包括在内

EN

回答 1

Stack Overflow用户

发布于 2017-04-09 00:02:54

你说它不适合你,但我只是尝试了我用你的输入数据链接的代码,它输出了你想要的东西。我没有打印字段名,但下面是根据您的规范解析的行:

代码语言:javascript
复制
#include <iostream>
#include <sstream>

void print_tab_delimited_fields(const std::string &input)
{
    std::istringstream ss(input);
    std::string token;
    while (std::getline(ss, token, '\t')) {
        std::cout << token << '\n';
    }
}

int main()
{
    std::string line1 = "Corfu\t5 * Gelina Village Waterpark\t21 May 2017\tLuton\t10 nights\tAll Inclusive";
    print_tab_delimited_fields(line1);

    std::string line2 = "Holguin\t5 * Paradisus Rio De Oro\t22 May 2017\tManchester\t10 nights\tAll Inclusive";
    print_tab_delimited_fields(line2);
}

输出

代码语言:javascript
复制
Corfu
5 * Gelina Village Waterpark
21 May 2017
Luton
10 nights
All Inclusive
Holguin
5 * Paradisus Rio De Oro
22 May 2017
Manchester
10 nights
All Inclusive

将结果推送到向量,或者与字段标签一起打印结果,这将是一个很小的改变,因为数据文件已经被假定有这些精确的字段的精确顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43295890

复制
相关文章

相似问题

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