头文件:stdio.h
函数原型:FILE * fopen(const char * path, const char * mode);
path: 操作的文件路径
mode:模式
模式 | 描述 |
---|---|
r | 打开一个已有的文本文件,允许读取文件。 |
w | 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。 |
a | 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。 |
r+ | 打开一个文本文件,允许读写文件。 |
w+ | 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。 |
a+ | 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。 |
一 读文件
int test5() {
//自己定义的文件地址
char *path = (char*)"C:\\Users\\PF0ZYBAJ\\Desktop\\files\\friends.txt";
FILE *fp = fopen(path, "r");
char buff[500];
while (fgets(buff, 50, fp)) {
printf("%s", buff);
}
fclose(fp);
system("pause");
system("pause");
return 0;
}
二 写文件
int test5() {
char *path =(char *) "C:\\Users\\PF0ZYBAJ\\Desktop\\files\\write.txt";
FILE *fp = fopen(path, "w");
if (fp == NULL) {
printf("failed。。。。");
return 0;
}
char *text = (char *)"这是我写的文件内容";
fputs(text, fp);
fclose(fp);
return 0;
}
三 读写二进制文件
/读写二进制文件
int test5() {
char * read_path = (char *)"C:\\Users\\PF0ZYBAJ\\Desktop\\files\\LogViewPro.exe";
char * write_path = (char *)"C:\\Users\\PF0ZYBAJ\\Desktop\\files\\LogViewPro_w.exe";
FILE * read_fp = fopen(read_path, "rb");
FILE * write_fp = fopen(write_path, "wb");
char buff[50];
int len = 0;
while ((len = fread(buff, sizeof(char), 50, read_fp))) {
fwrite(buff, sizeof(char), len, write_fp);
}
fclose(read_fp);
fclose(write_fp);
system("pause");
return 0;
}
四 获取文件大小
int test5() {
char * read_path = (char *)"C:\\Users\\PF0ZYBAJ\\Desktop\\files\\liuyan.png";
FILE * fp = fopen(read_path, "r");
if (fp == NULL) {
return 0;
}
fseek(fp, 0, SEEK_END);
long filesize = ftell(fp);
printf("%ld \n", filesize);
system("pause");
return 0;
}