我有一个如下文本文件
2 1 2
5 10 13 11 12 14
2 0 1
2 99 2
200 2
1 5
5 1 2 3 4 5
1 0
0 0
我想逐行读取文件,并从每行读取umbers。我知道如何使用流来读取固定的字段行,但是非固定行呢?
最诚挚的问候,
答案 0 :(得分:8)
使用字符串流。概括地说:
string line;
while( getline( cin, line ) ) { // read each line:
istringstream is( line );
int n;
while( is >> n ) { // read each number in line
// do something with each number:
}
}
答案 1 :(得分:1)
更有效的版本然后是getline + stringstream:
vector<vector<int> > numbers;
int num;
for (;;) {
if (file.peek() == '\n') {
numbers.resize(numbers.size() + 1);
} else if (!isspace(file.peek())) {
if (!(file >> num)) break;
numbers.back().push_back(num);
continue;
}
file.get();
}