我有一个双矩阵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;
}
首先,当我打印结果时,事件矩阵的前两个元素是文件的最后两个元素。其次,任何想法如何只读取两个第一个元素,实际上是矩阵的大小????
答案 0 :(得分:3)
您可以像这样读取行数和列数:
int R, C;
infile >> R;
infile >> C;
您可以在读取文件其余部分的嵌套循环之前执行此操作。然后使用文件中的数字作为循环结束目标,而不是硬编码50和8。