Làm thế nào để đọc dữ liệu từ một tập tin nếu tập tin của tôi là như thế này với Comma Separated Values Làm thế nào để đọc-viết vào/từ tập tin văn bản với các giá trị dấu phẩy tách
1, 2, 3, 4, 5\n
6, 7, 8, 9, 10\n
\n
và sau khi đọc các tập tin, tôi muốn để ghi dữ liệu trở lại vào tệp khác với cùng định dạng ở trên.
Tôi có thể lấy tổng số dòng, sử dụng
string line;
while(!file.eof()){
getline(file,line);
numlines++;
}
numline--; // remove the last empty line
nhưng làm thế nào tôi có thể biết tổng số chữ số trong một hàng/dòng ??
Tôi cũng có vectơ ints để lưu trữ dữ liệu. Vì vậy, tôi muốn đọc dòng đầu tiên và sau đó đếm tổng số phần tử trong dòng đó, ở đây 5 (1,2,3,4,5) và lưu trữ chúng trong mảng/vector và đọc dòng tiếp theo và lưu chúng trong vector một lần nữa và như vậy cho đến khi tôi đạt EOF.
Sau đó, tôi muốn viết dữ liệu vào tập tin, một lần nữa, tôi đoán đây sẽ làm công việc viết dữ liệu vào tập tin,
numOfCols=1;
for(int i = 0; i < vector.size(); i++)
{
file << vector.at(i);
if((numOfCols<5) file << ",";//print comma (,)
if((i+1)%5==0)
{
file << endl;//print newline after 5th value
numOfCols=1;//start from column 1 again, for the next line
}
numOfCols++;
}
file << endl;// last new line
Vì vậy, vấn đề chính của tôi là làm thế nào để đọc dữ liệu từ tệp với giá trị được phân cách bằng dấu phẩy ??
Cảm ơn
Điều này làm gì? std :: linestream linestream (line); – Curious
Nó tạo ra một đối tượng dòng chuỗi. Nó hoạt động giống như một dòng, như std :: cin, std :: cout hoặc một luồng tệp std :: fstream, nhưng sử dụng một chuỗi làm nguồn dữ liệu. Vì vậy, trong thực tế nó là một dòng chỉ là một dòng. –
Khi tôi cố gắng biên dịch, tôi nhận được lỗi này, biến 'std :: stringstream linestream 'có bộ khởi tạo nhưng không đầy đủ. Tôi đã bao gồm tất cả tiêu đề bắt buộc. – Curious