当我关闭程序并在c ++中再次运行时,如何阻止我的记录被覆盖

时间:2014-04-11 20:56:21

标签: c++

我正在尝试将一些用户输入保存到dat文件中,当程序关闭并再次打开时,我想将新记录保存到我已经获得的记录上...而且我不确定最新的命令是什么读取数据并在屏幕上显示我已阅读的书籍,但它们都有旧的命令,但不起作用。

//account.h
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <String>
#define _CRT_SECURE_NO_DEPRECATE
#include <fstream>
#include <stdlib.h>
using namespace std; 
struct Account
{
public :
void login();
void userRegister();
protected :
int username;
int password;

};


void Account :: userRegister()
{
Account myAccount;
char terminator;
int myUserID = 0;
int myPassword = 0;
 std::cout << "Enter Your 8 digit UserID";
cin >>myUserID  ;
        cout << "Enter Your 6 digit password";
cin >> myPassword ;
FILE * dat = fopen("Accounts.dat", "wb");

myAccount.userID ;

myAccount.password ;
fwrite(&myAccount, sizeof(myAccount), 1, dat);
        //cin.get (terminator);
        fclose (dat);


  }

2 个答案:

答案 0 :(得分:0)

以追加模式打开文件。

此处a告诉您附加,+创建文件(如果它不存在)。

FILE * dat = fopen("Accounts.dat", "ab+");

http://www.cplusplus.com/reference/cstdio/fopen/

答案 1 :(得分:0)

您似乎在询问如何将新数据添加到现有文件中。为此,您需要以附加模式打开文件。

更改

FILE * dat = fopen("Accounts.dat", "wb");

FILE * dat = fopen("Accounts.dat", "ba+");