拆分一串制表符分隔的整数并将它们存储在向量中

Split a string of tab separated integers and store them in a vector

ifstream infile;
infile.open("graph.txt");
string line;
while (getline(infile, line))
{
       //TODO
}
infile.close();

我从文件中逐行获取输入并将每一行存储在字符串“line”中。

每行包含由制表符分隔的整数。我想将这些整数分开并将每个整数存储在一个向量中。但我不知道如何进行。在 C++ 中是否有类似 split 字符串的函数?

副本有一些解决方案,但是,我更愿意使用 stringstream,例如:

#include <sstream>

//...

vector<int> v;

if (infile.is_open()) // make sure the file opening was successful
{
    while (getline(infile, line))
    {
        int temp;
        stringstream ss(line); // convert string into a stream
        while (ss >> temp)     // convert each word on the stream into an int
        {
            v.push_back(temp); // store it in the vector
        }
    }
}

As 这会将文件中的所有 int 值存储在向量 v 中,假设文件实际上只有 int 值,因为例如,超出 int 范围的字母字符或整数将不会被解析,并且只会触发该行的流错误状态,并在下一行继续解析。