程序将垃圾值打印到文件中

时间:2019-01-23 14:23:49

标签: c++ file-io

这是我的课程:

class User{
    char name[40], address[50], phone[15];
    long uid; int password;
    char acctType;
    float acctBalance;
    void GenerateIdPassword();
    int GetPassword();
public :
    int NewAccount();
    int LoginToAccount();
    void DisplayAccountDetails();
    int GetAcctNumber();
    float GetBalance();
    void Deposit(float);
    void Withdraw(float);
    void ChangePassword();
    void StoreData(User);
};

注意:我尚未包含任何成员函数定义。

void User::StoreData(User u)
{
    fstream fio;
    long p;
    User t;
    fio.open("UserAccounts.txt", ios::in | ios::out);
    while(fio) {
        p = fio.tellg();
        fio.read((char*)&t, sizeof(t));
        if(u.uid == t.uid) {
            fio.seekp(p);
            fio.write((char*) &u, sizeof(u));
            break;
        }
    }
    fio.close();
}

如果用户实际上已修改与其帐户有关的任何信息,则此功能将修改文件中的记录。

如果最后我从该文件修改了帐户,则会在文件中得到垃圾值。

有人可以告诉我我做错了吗!

0 个答案:

没有答案