使用C ++流从文本文件中读取数字

时间:2010-06-13 07:49:29

标签: c++

我有一个如下文本文件

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。我知道如何使用流来读取固定的字段行,但是非固定行呢?

最诚挚的问候,

2 个答案:

答案 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();
    }