文件中的错误已存在

时间:2015-04-23 09:22:24

标签: c++ file

在检查文件是否已存在之后,我正在尝试为帐户创建文件!但我卡住了,因为我遇到了意外的运行时错误!

第一次运行

输入帐户名称:Hassan

创建帐户

第二轮

输入帐户名称:Hassan

帐户已存在

输入帐户名称:Hassan

创建帐户

这是问题!!!并创建名为" assan"

的文件

CODE

/*
********************
1.  ADD ACCOUNT
********************
*/
void add_account(){

system("cls");
cout<<"\n\t******************************************\n";
cout<<"\t\tADD ACCOUNT MENU\n";
cout<<"\t******************************************\n";



//Taking account name
again:
Account new_account;
cout<<"\n\n\tPlease Enter the name of account : ";
cin.ignore(); //for clearing buffer
cin.getline(new_account.account_name,79);

if(create_file_for_account(new_account.account_name)==0)
    goto again;


cout<<endl<<endl; system("pause");
return;
}

/*
********************
1(a). CREATE FILE OF ACCOUNT
********************
*/
int create_file_for_account(char file_name[])
{
//Check if file exists already
if(does_file_exist(file_name)){
    cout<<"\n\nSorry, account already exists!";
    return 0;
}

ofstream account;

account.open(file_name,ios::out);

//Check if file created successfully
if(account.good()){
    cout<<"File created";
    return true;
}
else{
    return false;
}

}

/*
********************
1(b). CHECK IF FILE EXISTS
********************
*/
bool does_file_exist(char file_name[])
{

ifstream check(file_name, ios::ate);
if(check)
    return true;
else{
    return false;
}
}

请帮助,我试图抓住错误几个小时,但我不能 因为我是C ++的初学者:p请...

1 个答案:

答案 0 :(得分:2)

实际上“cin.ignore”只会丢弃输入的第一个字符(如果有的话)(参见http://www.cplusplus.com/reference/istream/istream/ignore/

所以我认为“H”不知何故被忽略了......