File * fopen(char *fileURL,char *Mode); 文件路径 文件格式
1.声明一个文件指针,接收fopen返回的文件指针
File *fp;
2.fopen打开文件
fp=fopen("1.txt","读写方式");
注意点:如果fp==NULL,说明打开文件失败
路径:
相对路径:同一个文件夹下
绝对路径:明确的路径
读写方式:
w:write 写
r:read 读
a:append 追加
+: 读,写
b:binary 二进制
注意:
w:如果文件存在会清空文件,如果文件不存在会创建一个文件
r:步具备创建功能,也不具备清空功能
a:追加,不清空,在原文件后面接着写
1.以字符方式读写
fgetc() fputc()
2.以字符串方式读写
fgets() fputs()
3.格式化读写
fprintf() fscanf()
4.结构化读写
fread() fwrite()
文件操作一定要关闭文件
fclose(File,*fp);
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
struct boy {
char name[15];
char sex[15];
int age;
};
int main() {
//r和w的区别
FILE* read;
read = fopen("1.txt", "r"); //以读的方式打开文件
if (read == NULL) {
cout << "打开文件失败" << endl;
}
else {
cout << "文件存在" << endl;
}
read = fopen("1.txt", "w"); //以写的方式打开文件,如果文件不存在会创建一个文件
if (read == NULL) {
cout << "打开文件失败" << endl;
}
else {
cout << "文件存在" << endl;
}
fclose(read); //关闭文件
cout << "-------------------" << endl;
//以字符的形式读写文件
//字符的形式写文件
FILE* fp = fopen("2.txt", "w"); //以写的方式打开文件
char str[] = { "I love you" };
for (int i = 0;i < strlen(str) + 1;i++) {
fputc(str[i],fp);
}
fclose(fp);
//字符的形式读文件
fp = fopen("2.txt", "r");
char value = fgetc(fp);
while (value != EOF) {
cout << value;
value = fgetc(fp);
}
cout << endl;
fclose(fp);
cout << "-------------------" << endl;
//以字符串的形式读写文件
//字符串的形式写入文件
FILE* fps = fopen("2.txt", "w");//以写的方式打开文件
fputs(str, fps);
fclose(fps);
//字符串的方式读文件
fps = fopen("2.txt", "r");//以读的方式打开文件
char strFile[1024];
fgets(strFile, 1024,fps);
puts(strFile);
cout << "-------------------" << endl;
//格式化读写文件
struct boy boys[3] = {
{"li","nan",18},
{"ming","nan",18},
{"liu","nan",19}
};
//格式化写入文件
FILE* fpg = fopen("3.txt", "w"); //以读的方式打开文件
//fscanf,fprintf指定输入输出位置
for (int i = 0;i < 3;i++) {
fprintf(fpg,"%s\t%s\t%d\n", boys[i].name, boys[i].sex, boys[i].age);
}
fclose(fpg);
//格式化读文件
struct boy tboy;
fpg = fopen("3.txt", "r");
while (fscanf(fpg, "%s\t%s\t%d\n", &tboy.name, &tboy.sex, &tboy.age)!=EOF) {
printf("%s\t%s\t%d\n", tboy.name, tboy.sex, tboy.age);
}
fclose(fpg);
cout << "-----------------" << endl;
//结构化读写
//结构化方式读写的文件,文件里面是乱码
//结构化写入文件
FILE* write = fopen("4.txt", "w"); //以写的方式打开的文件
fwrite(&boys[0], sizeof(struct boy), 3, write);
fclose(write);
//结构化读文件
FILE* readfile = fopen("4.txt", "r"); //以读的方式打开文件
struct boy tboys[3];
fread(&tboys[0], sizeof(struct boy), 3, readfile);
for (int i = 0;i < 3;i++) {
printf("%s\t%s\t%d\n", tboys[i].name, tboys[i].sex, tboys[i].age);
}
fclose(readfile); //关闭文件指针
return 0;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_47511190/article/details/120099691
内容来源于网络,如有侵权,请联系作者删除!