我正在学习C而我正在尝试重命名和删除文件。这是我的代码:
fclose(satis);
if(!remove("satis.txt"))
printf("file deleting error\n");
fclose(gecicisatis);
if(!rename("gecicisatis.txt", "satis.txt"))
printf("file rename error\n");
这是我的.cpp文件的标题:
#include<stdio.h>
#include<locale.h>
#include<string.h>
#include<windows.h>
#include<conio.h>
调试时没有任何错误。但它的输出是:
file deleting error
file rename error
如果您需要,这是我的全部代码:http://pastebin.com/kNY0y2xz(第157至162行)
这是我们的功课,所以我必须使用txt文件。我必须解决为什么文件删除和删除返回错误。你能帮我解决这个问题吗?
答案 0 :(得分:0)
如果文件被删除或重命名成功,则返回零值。
您必须将支票更改为:
if( remove("satis.txt") != 0 )
printf("File deleting error\n");
if( rename("gecicisatis.txt", "satis.txt") != 0 )
printf("File rename error\n");
答案 1 :(得分:0)
remove
成功返回0
。所以你需要在if
中扭转你的状况。此外,每当遇到错误情况时,最好调用函数perror
,它将打印错误原因:
if(remove("satis.txt"))
perror("File deletion failed\n");
函数rename
也是如此。
由于您只提供文件名而不提供路径名,因此假定该文件存在于启动可执行文件的目录中(假设您没有更改进程的pwd)。如果不是这种情况,则必须传递路径名,该路径名可以是相对路径名也可以是绝对路径。