在C++中,我想讀取一個帶有浮動列的文本文件,並將它們放入一個2d數組中。C++讀取.txt的浮點值並將它們放入未知大小的二維數組中
第一行將是第一列,依此類推。
數組的大小是未知的,它取決於可能會有所不同的行和列。
我試過「getline」,「inFile >>」,但是我所做的所有更改都有一些問題。
例如,是否有辦法刪除不必要的行/行後值?
文件看起來像這樣(+/-):
- 字符 「\ t」 的字符 「\ t」 的字符 「\ n」 個
- 浮動 「\ t」 的浮動 「\ t」 的浮動「 \ t「float」\ n「
- float」\ t「float」\ t「float」\ t「float」\ n「
- float」\ t「float」\ t「float」 「\ 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;
}
最好發表一些代碼,並提供有關它的「問題」的更多細節。 –
該文件是什麼樣子的?你能編輯你的文章嗎? – 0x499602D2
我的代碼現在可以使用,請參閱下面的內容。 – 0x499602D2