01/10/2018, 13:25

Đọc chuỗi từ file

Mình có 1 file a.txt có nội dung

1
2
abc cde

giờ có 1 đoạn code

#include <iostream>
#include <fstream>

using namespace std;
int main ()
{
    int a, c;
    string b;
    ifstream doc;
    doc.open("a.txt");
    doc >> a;
    doc >> c;
    getline (doc,b) ;
    doc.close();
    cout << a <<endl<< b << endl<< c << endl; 
    // ghi vào file a.txt
    ofstream ghi;
    ghi.open("a.txt");
    ghi << a+1<< endl;
    ghi << b << endl;
    ghi << c +1<< endl;
    ghi.close();
}

Nhưng nó không đọc được cái string b trong khi a, c vẫn đọc được. Vậy mình phải làm sao để sửa vậy.
Mình cảm ơn.

Quang Minh viết 15:36 ngày 01/10/2018

Xóa bộ nhớ đệm trước khi nhập string.
Vì khi bạn truyền vào c rồi, con trỏ file ở ngay sau giá trị đó nên getline sẽ nhận luôn vào b ký tự xuống dòng.

doc >> a;
doc >> c;
doc.ignore();
getline (doc, b);
明玉 viết 15:27 ngày 01/10/2018

Sử dụng getline để đọc từng dòng, kể cả số.
đưa line đọc được vào stringstream.
Từ stringstream, lấy ra dữ liệu cần thiết.

int a, c;
string b;
ifstream doc;
doc.open("a.txt");
stringstream ss;
string input;
getline(doc, input);
ss << input;
ss >> a;
getline(doc, input);
ss << input;
ss >> c;
getline(doc, input);
ss << input;
ss >> b;
Bài liên quan
0