如何将文件中单行中带有空格和数字的名称与数字分开?

问题描述 投票:0回答:1

这是问题,我有一个文件,它看起来像这样:

Car-in-blue 4
Truck 100 5
Jeep-43 434 6
Machine 123 5

所以,一行的最后一位数字是一个整数,应该插入到一个 int 变量中,带有连字符、空格和数字的名称插入到一个字符串变量中。所以问题是我该怎么做?

如果你不明白,应该是这样的:

int a = 4
sting name = "Car-in-blue"
int a = 5\
sting name = "Truck 100"
int a = 6\
sting name = "Jeep-43 434"
int a = 5\
sting name = "Machine 123"

我添加了原始问题的屏幕截图,它不是英文的,但这没关系,这就是问题中的样子。(https://i.stack.imgur.com/QzGbs.png)

我对解决没有任何想法)

c++ console solution
1个回答
0
投票

您需要对输入行进行标记,在空格处将它们分开。

将最后一个标记转换为整数并保存

将除最后一个标记之外的所有标记重新组合成字符串并保存

    std::ifstream ifs ( -filepath- )
    std::string line;
    while (getline(ifs, line))
    {
        std::vector<std::string> vtoken;
        std::stringstream sst(line);
        std::string a;
        while (getline(sst, a, ' '))
            if (a.length())
                vtoken.push_back(a);
        int a = atoi( vtoken.back().c_str());
        string name;
        for( auto it = vtoken.begin(); it != vtoken.end() - 1; it++ )
             name += " " + *it;
    }
© www.soinside.com 2019 - 2024. All rights reserved.