我在這個小代碼部分有問題。它不會刪除名爲adatok.txt
的文件。在這個程序中,我有一個以DIAK
(我的結構)形式存儲的文件中的許多信息,並且所有這些信息都有一個數字(diak.sorszam
)。當我想刪除我的一個信息時,我輸入存儲在torol
中的信息的號碼,之後我將我的有用信息存儲在名爲sadatok.txt
的文件中,並在關閉這兩個文件後,我要刪除adatok.txt
,並將其重命名爲sadatok.txt
到adatok.txt
,但對於屏幕上的某些原因出現SucsessfullError刪除文件:權限被拒絕......刪除(「<filename>」);刪除文件時出錯:權限被拒絕
...
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();
...
將運行程序的文件和目錄的權限更改爲
rwx
當函數調用成功時,不要使用'perror()'。 – cremno 2015-02-12 07:51:35在哪個操作系統上,用哪個文件系統?請編輯您的問題以改進它! – 2015-02-12 08:22:07