分隔符提取一系列数据

时间:2013-08-10 16:31:37

标签: c++ delimiter getline

来自textfile(Range.txt),

Range:1:2:3:4:5:6....:n:

有一个结果列表,但我只需要将数字1 2 3提取到最后一位数字,但有时最后一位数字可能会有所变化

所以我在文件中读取,提取分隔符并将其推入矢量。

ifstream myfile;
myfile.open("Range.txt");

istringstream range(temp);
getline(range, line,':');

test.push_back(line);

我如何捕获所有价值?我有这个,它只捕获一位数。

2 个答案:

答案 0 :(得分:2)

我有这个,它只捕获一个数字

您需要使用循环: -

while (getline(range, line, ':')) 
  test.push_back(line);

稍后使用向量,您可以处理它以仅获取整数。

答案 1 :(得分:0)

Plase,读到:Parsing and adding string to vector

您只需更改分隔符(从whitespace:)。

std::ifstream infile(filename.c_str());
std::string line;

if (infile.is_open())
{
    std::cout << "Well done! File opened successfully." << std::endl;
    while (std::getline(infile, line, ':'))
    {
        std::istringstream iss(line);
        std::vector<std::string> tokens{std::istream_iterator<std::string>(iss),std::istream_iterator<std::string>()};

        // Now, tokens vector stores all data.
        // There is an item for each value read from the current line.
    }
}