0
我在remove()
函數中遇到問題。這是非常簡單的程序會將2d矩陣複製到kimenet.txt
,我想刪除bemenet.txt
。在c中使用remove函數
問題:爲什麼我的程序返回-1時應該是0?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **a,n,i,j;
FILE *fin,*fout;;
fin = fopen("bemenet.txt","rt");
if(!fin){printf("Error");return EXIT_FAILURE;}
fout = fopen("kimenet.txt","wt");
if(!fout){printf("Error");return EXIT_FAILURE;}
fscanf(fin,"%i",&n);
a = (int**)malloc(n*sizeof(int*));
for(i = 0; i < n; ++i){
a[i] = (int*)malloc(n*sizeof(int));
for(j = 0; j <n; ++j){
fscanf(fin,"%i",&a[i][j]);
}
}
for(i = 0; i < n; ++i){
for(j = 0; j < n; ++j){
fprintf(fout,"%4i ",a[i][j]);
}
fprintf(fout,"\n");
}
int ret = remove("kimenet.txt");
if(ret == 0){
printf("Deleted succesfully");
}
else printf("Error");
fclose(fin);
fclose(fout);
return EXIT_SUCCESS;
}
您嘗試刪除該文件,而它仍然開放 –
您要刪除'kimenet.txt',不'bemenet.txt'。此外,如果您在Windows上(每次打開時都會得到一個免費的強制鎖),該文件可能不可移動。 – Hasturkun
除了指針指針之外,還可以考慮使用二維數組。然後您可以通過一次調用'fread'來讀取整個文件,並且不會出現碎片。 – Lundin