在检查文件是否已存在之后,我正在尝试为帐户创建文件!但我卡住了,因为我遇到了意外的运行时错误!
输入帐户名称:Hassan
创建帐户
输入帐户名称:Hassan
帐户已存在
输入帐户名称:Hassan
创建帐户
这是问题!!!并创建名为" assan"
的文件/*
********************
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请...
答案 0 :(得分:2)
实际上“cin.ignore”只会丢弃输入的第一个字符(如果有的话)(参见http://www.cplusplus.com/reference/istream/istream/ignore/)
所以我认为“H”不知何故被忽略了......