30/09/2018, 18:36

Vấn đề về vào ra file trong C++

Đề bài là nhập thông tin của giảng viên và để ghi vào file GV.DAT
Mọi người giúp em với ạ, khi nhập xong dữ liệu để ghi vào file thì nó chỉ lặp lại số lần của thông tin giảng viên cuối cùng thôi.

#include <iostream>
#include <fstream>
#include <string>

class Nguoi {
protected:
    std::string hoTen;
    std::string diaChi;
    std::string soDienThoai;
};

int maGV = 100;

class GiangVien : public Nguoi{
private:
    int maGiaoVien;
    std::string trinhDo;
    int soGV;
public:
    GiangVien(){
        this->maGiaoVien = maGV++;
    }
    void setMaGiaoVien(int mGV){
        maGiaoVien = mGV;
    }
    int getMaGiaoVien(){
        return maGiaoVien;
    }
    std::string setTrinhDo(){
        return trinhDo;
    }
    std::string getTrinhDo(){
        return trinhDo;
	}
    
	friend void nhapThongTinGV(GiangVien &GV);
    friend void inThongTinGV(GiangVien &GV);
};

void nhapThongTinGV(GiangVien &GV){
    std::cout << "So luong giang vien: ";
    std::cin >> GV.soGV;
    std::cin.ignore();
    
	for (int i = 0; i < GV.soGV; i++){
        std::cout << "************************************" << std::endl;
        std::cout << "Ho Ten: ";
        std::getline(std::cin, GV.hoTen);
        std::cout << "Dia Chi: ";
        std::getline(std::cin, GV.diaChi);
        std::cout << "So Dien Thoai: ";
        std::getline(std::cin, GV.soDienThoai);
        std::cout << "Ma Giao Vien: ";
        std::cin >> GV.maGiaoVien;
        std::cin.ignore();
        std::cout << "Trinh Do: ";
        std::getline(std::cin, GV.trinhDo);
        std::cout << "************************************" << std::endl;
    }
}

void inThongTinGV(GiangVien &GV){
    std::ofstream outGV;
    outGV.open("GV.DAT", std::fstream::app);
        
    for (int i = 0; i < GV.soGV; i++){
            outGV << GV.hoTen << "		" << GV.diaChi << "		" << GV.soDienThoai
                  << "		" << GV.maGiaoVien << "		" << GV.trinhDo << "		"
                  << std::endl;
    }
    
	outGV.close();
}

int main(int argc, char** argv){
    GiangVien GV;
    
    nhapThongTinGV(GV);
    inThongTinGV(GV);

    return 0;
}

Bài liên quan
0