来自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);
我如何捕获所有价值?我有这个,它只捕获一位数。
答案 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.
}
}