在C++中,我想读取一个有多列浮点数的文本文件,并将它们放入一个二维数组中。
第一行是第一列,依此类推。
数组的大小是未知的,它取决于可能会变化的行和列。
我尝试过使用"getline"、"inFile >>",但是所有修改都存在问题。
例如,有没有办法在值存在后删除不必要的行?
文件看起来像这样(+/-):
• 字符“\t”字符“\t”字符“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n”
谢谢。
到目前为止,我有这个:
第一行是第一列,依此类推。
数组的大小是未知的,它取决于可能会变化的行和列。
我尝试过使用"getline"、"inFile >>",但是所有修改都存在问题。
例如,有没有办法在值存在后删除不必要的行?
文件看起来像这样(+/-):
• 字符“\t”字符“\t”字符“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n” • 浮点数“\t”浮点数“\t”浮点数“\t”浮点数“\n”
谢谢。
到目前为止,我有这个:
int ReadFromFile(){
ifstream inFile;
ofstream outFile;
int nLinActual = 0;
const int nCol = 9;
const int nLin = 10;
// open file for reading
inFile.open("values.txt");
// checks if file opened
if(inFile.fail()) {
cout << "error loading .txt file reading" << endl;
return 1;
}
// open file for writing
outFile.open ("outArray.txt");
// checks if file opened
if(outFile.fail()) {
cout << "error loading .txt file for writing" << endl;
return 1;
}
// Doesn't read the first line
string dummyLine, dummyLine2, dummyLine3;
getline(inFile, dummyLine);
// Declares Array
float values[nLin][nCol];
//Fill Array with -1
for(int l=0; l<nLin; l++)
for(int c=0; c<nCol; c++)
values[l][c] = -1;
// reads file to end of *file*, not line
while(!inFile.eof()) {
for (int i=0; i<nCol; i++) {
inFile >> values[i][nLinActual];
}
i=0;
++nLinActual;
}
// Check what's happening
cout << endl;
for(int l=0; l<nLin; l++){
for(int c=0; c<nCol; c++){
cout << values[l][c] << "\t";
outFile << values[l][c] << "\t";
}
cout << endl;
outFile << endl;
}
inFile.close();
outFile.close();
return 0;
}