1、errno_t fopen_s( FILE** pFile, const char *filename, const char *mode );
注:fopen_s能过创建文件,但无法创建目录
打开方式 | 说明 |
---|---|
r | 以只读方式打开文件,该文件必须存在。 |
r+ | 以读/写方式打开文件,该文件必须存在。 |
rb+ | 以读/写方式打开一个二进制文件,只允许读/写数据。 |
rt+ | 以读/写方式打开一个文本文件,允许读和写。 |
w | 打开只写文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件。 |
w+ | 打开可读/写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 |
a | 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)。 |
a+ | 以附加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符 不保留)。 |
wb | 以只写方式打开或新建一个二进制文件,只允许写数据。 |
wb+ | 以读/写方式打开或建立一个二进制文件,允许读和写。 |
wt+ | 以读/写方式打开或建立一个文本文件,允许读写。 |
at+ | 以读/写方式打开一个文本文件,允许读或在文本末追加数据。 |
ab+ | 以读/写方式打开一个二进制文件,允许读或在文件末追加数据。 |
eg:
int main()
{
char* fileName0 = "F:\\a\\t0.txt";
char* fileName1 = "F:\\a\\b\\t1.txt";
char* newName0 = "F:\\a\\t3.txt";
char string[60],c;
long sizeOfF0 = 0;
int maxCount = 10,i=0;
FILE* f0, *f1;
fopen_s(&f0, fileName0, "w+");
fopen_s(&f1,fileName1,"a+");
fprintf(f0,"你好呀!我是zoghin\n");
fprintf(f1, "Hello World! t1.txt\n");
rewind(f0); //将文件流指针重定位至开始位置
rewind(f1);
while ((c=fgetc(f0)) !=-1) {
printf("%c",c);
} //居然能打印中文
fgets(string, maxCount, f1);
for (i = 0; i < maxCount; i++) {
printf("%c",string[i]);
}
printf("\n");
fseek(f0, 0L, SEEK_END); //重定位文件流指针
sizeOfF0 = ftell(f0); //给出当前流指针的位置
printf("%d\n",sizeOfF0); //确定文件大小
fclose(f0);
fclose(f1);
rename(fileName0, newName0); //重命名文件
while (true)
{
}
return 0;
}