我做了一个函数,首先读取文件并检查它是否存在,然后在确认后将其删除,但如果我直接喜欢
remove("a.text");
它删除了名为 a.txt 的文件,但是当我使用我的函数时
int deletediary()
{
string searchfilename;
cout<<"\nPlease enter the filename to be searched\n";
cin>>searchfilename;
searchfilename.append(".txt");
fileread.open(searchfilename.c_str());
if(!fileread){
cout<<"\nERROR :Either you didn't enter an invalid date or you entered an date with no entry\n\n";
A :
cout<<"Continue to search? (y/n)\n";
if(getch()=='y')
{
modifydiary();
}
else if(getch()=='n')
{
menuview();
}
else
{
cout<<"Enter Correct Option\n";
goto A;
}
}
else{
system("cls");
int i;
B :
cout<<"Are you sure you want to remove this diary entry? (y/n)";
if(getch()=='y')
{
remove(searchfilename.c_str());
}
else if(getch()=='n')
{
menuview();
}
else
{
cout<<"Enter Correct Option\n";
goto B;
}
cout<<"INFO :Deleted!!!";
system("pause");
menuview();
}
它只检查文件名但不删除它。
原文由 Akhilesh Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
您忘记关闭已打开的文件。所以, 关闭文件,它应该可以工作。
注意:该解决方案适用于@AkhileshSharma,并包含评论作为答案以关闭已回答的问题。