FILE *fp;
fp=fopen("c:\\test.txt", "r");
int fgetc (FILE *fp);
int fputc( int c, FILE *fp );
有没有办法更改计算机中已存在的文件名? 如果是,那么我该如何引用该文件? 使用指针我们只能引用文件的内容...所以有没有引用文件名的方法??? 以下是我在C中引用文件的方式:
答案 0 :(得分:5)
使用rename
功能。
if (rename("c:\\test.txt", "c:\\newname.txt") == -1) {
perror("rename of c:\\test.txt failed");
exit(EXIT_FAILURE);
}
编辑:正如托马斯在答案中指出的那样,你也需要#include <stdio.h>
。有关详细信息,请参阅友好的C参考手册。
编辑:rename
是C标准的一部分(1989和1999两个版本)。
答案 1 :(得分:3)
#include&lt; stdio.h&gt;
int rename(const char * oldpath,const char * newpath);
答案 2 :(得分:2)
POSIX说rename()在失败时返回-1,但C标准只表示它返回一些非零值。 (两者都说它在成功时返回0。)如果您将比较从== -1
更改为!= 0
,它将在POSIX和非POSIX系统上正常工作。
注意#include <stdio.h>
提供了rename()和所有其他标准I / O函数的声明;试图自己声明它们是不必要的,可能会导致问题。