我在这个小代码中遇到了问题。它不会删除名为adatok.txt
的文件。在这个程序中,我在DIAK
(我的结构)形式的文件中有很多信息,所有这些信息都有一个数字(diak.sorszam
)。当我想删除我的一个信息时,我输入了torol
中存储的信息编号,之后我将有用的信息存储在名为sadatok.txt
的文件中,关闭这两个文件后我要删除adatok.txt
,并将sadatok.txt
重命名为adatok.txt
,但由于某些原因,屏幕上显示SucsessfullError删除文件:权限被拒绝...
...
system("cls");
int torol,stat=0;
printf("\n\n\tDeleting number:");
scanf("%d",&torol);
FILE *fp, *sfp;
fp = fopen("adatok.txt","rb");
sfp = fopen("sadatok.txt","ab");
DIAK diak;
while(fread(&diak,sizeof(DIAK),1,fp)!=0){
if(diak.sorszam==torol){
stat=1;
}else{
fwrite(&diak,sizeof(DIAK),1,sfp);
}
}
fclose(sfp);
fclose(fp);
system("cls");
if(stat==1){
printf("\n\n\tSucsessfull");
if(remove("adatok.txt")!=0){
perror("Error deleting file");
}else{
perror("File successfully deleted");
}
rename("sadatok.txt","adatok.txt");
}else{
printf("\n\n\tUnsucsessfull");
if(remove("sadatok.txt")!=0){
perror("Error deleting file");
}else{
perror("File successfully deleted");
}
}
printf("\n\tPress a buton");
getch();
...
答案 0 :(得分:2)
可能重复:"Error deleting file: Permission denied" with remove in C++
您应该添加\n
以改善输出跟踪:
printf("\n\n\tSucsessfull\n");
然后:
remove()
答案 1 :(得分:0)
您可能没有权限删除该文件。使用rwx
chmod