好好生活,好好去爱,怀念不一定要相见,喜欢不一定就要在一起,你要相信,每一次相遇都有他的意义。。。
---- 网易云热评
一、写数据
#include #include #include #include typedef struct Aiyou{ int year; char name[50]; char zdg[50];}Aiyou;int main() {FILE* fp = NULL; errno_t err; err = fopen_s(&fp, "C:\\Users\\aiyou\\Desktop\\123.txt", "w"); if (err != 0) { printf("文件打开失败!"); return; } Aiyou ay[3] = { 2016,"周杰伦的床边故事","告白气球" , 2016,"周杰伦的床边故事","告白气球" , 2016,"周杰伦的床边故事","告白气球" }; int ret = fwrite(ay,1,sizeof(ay),fp); printf("%d", ret); fclose(fp);}
1、&ay需要文件写内容的首地址
2、sizeof(ay)写书数据大小
3、1,写入内容的个数
4、fp,要操作的文件
5、因为二进制写入,所以看到的是乱码
运行结果:
二、读数据
FILE* fp1 = NULL; errno_t err1; err1 = fopen_s(&fp1, "C:\\Users\\aiyou\\Desktop\\123.txt", "r"); if (err1 != 0) { printf("文件打开失败!"); return; } Aiyou ay1[10]; int i = 0; int ret1 = 0; while (1) { ret1 = fread(&ay1[i], 1,sizeof(Aiyou),fp1); printf("ret1=%d\n", ret1); if (ret1==0) { break; } i++; } printf("共有%d个数据\n", i); int n = i; for (i = 0; i < n; i++) { printf("%d-%s-%s\n", ay1[i].year, ay1[i].name, ay1[i].zdg); } fclose(fp1);
1、&ay1[0],要读数据的首地址
2、sizeof(Aiyou),要读数据的块大小
3、3,读3个快
4、fp1,要操作的文件
5、while循环,判断有多少个元素
5、运行结果
三、实例(复制文件)
#include #include #include #include typedef struct Aiyou{ int year; char name[50]; char zdg[50];}Aiyou;int main(int argc,char *argv[]) { //判断参数个数 if (argc !=3) { printf("参数有误!"); return; } //打开源文件 FILE* rp = NULL; errno_t err; err = fopen_s(&rp, argv[1], "rb");//b是二进制模式 if (err != 0) { printf("文件打开失败!"); return; } //打开要复制到的文件 FILE* wp = NULL; errno_t err1; err1 = fopen_s(&wp, argv[2], "wb"); if (err1 != 0) { printf("文件打开失败!"); return; } //每次度4KB内容 char buf[4*1024]; int len; while (1) { len = fread(buf,1,sizeof(buf),rp); printf("len=%d\n", len); if (len==0) { break; } fwrite(buf,1,len,wp); } fclose(rp); fclose(wp); system("pause"); return 0;}
运行结果:
欢迎关注公众号:顺便编点程