Trong C++, tôi muốn đọc một tệp văn bản có cột nổi và đặt chúng trong mảng 2d.C++ đọc giá trị float từ .txt và đặt chúng vào một mảng 2D có kích thước không rõ
Dòng đầu tiên sẽ là cột thứ nhất và cứ tiếp tục như vậy.
Kích thước của mảng không xác định, nó phụ thuộc vào các dòng và cột có thể thay đổi.
Tôi đã thử với "getline", "inFile >>", nhưng tất cả thay đổi tôi đã thực hiện đều có một số vấn đề.
Ví dụ: Có cách nào để xóa các hàng/dòng không cần thiết sau khi các giá trị có ở đó không?
tập tin trông như thế này (+/-):
- chars "\ t" chars "\ t" chars "\ n"
- phao "\ t" phao "\ t" phao " \ t "float" \ n "
- float" \ t "float" \ t "float" \ t "float" \ n "
- float" \ t "float" \ t "float" \ t "float "\ n"
Cảm ơn
Đến bây giờ tôi có điều này:
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;
}
Tốt nhất để đăng một số mã và cung cấp thêm chi tiết về "sự cố" mà bạn đã gặp phải. –
Tệp trông như thế nào? Bạn có thể sửa bài viết của mình không? – 0x499602D2
Mã của tôi hoạt động ngay bây giờ, vui lòng xem bên dưới. – 0x499602D2