Tôi cần đọc từ một tệp .data
hoặc .txt
chứa số mới float
trên mỗi dòng vào một vectơ.Làm thế nào để đọc một tập tin vào vector trong C + +?
Tôi đã tìm kiếm nhiều và nhiều phương pháp khác nhau nhưng mỗi khi tôi nhận được kết quả tương tự, của Main.size()
của 0
và lỗi nói "Vector Subscript out of Range"
, rõ ràng là vectơ không đọc bất kỳ thứ gì vào tệp.
Lưu ý: tệp nằm trong thư mục và cũng có trong dự án VS.
Dù sao, đây là mã của tôi:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<double> Main;
int count;
string lineData;
double tmp;
ifstream myfile ("test.data", ios::in);
double number;
myfile >> count;
for(int i = 0; i < count; i++) {
myfile >> tmp;
Main.push_back(tmp);
cout << count;
}
cout << "Numbers:\n";
cout << Main.size();
for (int i=0; i=((Main.size())-1); i++) {
cout << Main[i] << '\n';
}
cin.get();
return 0;
}
Kết quả tôi nhận được là luôn luôn đơn giản:
Numbers:
0
Kiểm tra kết quả của tất cả các hoạt động I/O. – hmjd
'Test.data' của bạn trông như thế nào? – us2012
vui lòng xem xét de/-serialization. thông thường bạn sẽ tạo một lớp vectơ và một lớp sưu tập vectơ (có thể xử lý tệp đầu vào txt). Một khởi đầu tốt là câu trả lời cho điều này: http://stackoverflow.com/questions/11415850/c-how-serialize-deserialize-objects-without-any-library – Najzero