从txt读取文件

时间:2011-12-06 17:16:50

标签: c++ file

我有一个双矩阵50x8的txt文件。前两行包含数组大小 50 8 50x8矩阵。当我试着用上面的代码读取这个文件时:

#include<iostream>
#include<fstream>

using namespace std;

int main() {

    ifstream infile;
    infile.open("C:/Users/zenitis/Desktop/BTHAI_2.3b-src/BTHAI/txtFiles/W1.txt");
    double events[50][8];

    while (!infile.eof()) 
    {
        for(int j=0;j<50;j++) 
        {
            for(int k=0; k<8;k++) 
            {
                infile >> events[j][k];
                // infile.get(c
            }
        }
    } //end while

    infile.close();

    for(int i = 0; i<50; i++){

        for(int l=0; l<8; l++){
            cout << events[i][l] << "    ";
        }

        cout << "\n";
    }

    cout << events[0][0];

    system("pause");     
    return 0;
}

首先,当我打印结果时,事件矩阵的前两个元素是文件的最后两个元素。其次,任何想法如何只读取两个第一个元素,实际上是矩阵的大小????

1 个答案:

答案 0 :(得分:3)

您可以像这样读取行数和列数:

int R, C;
infile >> R;
infile >> C;

您可以在读取文件其余部分的嵌套循环之前执行此操作。然后使用文件中的数字作为循环结束目标,而不是硬编码50和8。