C语言:用二进制方式向文件读写一组数据(fread、fwrite)

  1. #include<stdio.h>
  2. #define SIZE 10
  3. struct student
  4. {
  5. char name[10];
  6. int num;
  7. int age;
  8. char addr[15];
  9. }stu[SIZE];
  10. //保存数据(fwrite)
  11. void save()
  12. {
  13. FILE *fp;
  14. fp = fopen("stu.dat","wb");
  15. if(fp==NULL)
  16. {
  17. printf("file can not open!\n");
  18. return;
  19. }
  20. for(int i=0;i<SIZE;i++)
  21. {
  22. if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
  23. {
  24. printf("file write error!\n");
  25. }
  26. }
  27. fclose(fp);
  28. }
  29. //读取数据(fread)
  30. void load()
  31. {
  32. FILE *fp;
  33. fp = fopen("stu.dat","rb");
  34. if(fp==NULL)
  35. {
  36. printf("file can not open!\n");
  37. return;
  38. }
  39. for(int i=0;i<SIZE;i++)
  40. {
  41. if(fread(&stu[i],sizeof(struct student),1,fp)!=1)
  42. {
  43. if(feof(fp))
  44. {
  45. fclose(fp);
  46. return;
  47. }
  48. printf("file read error!\n");
  49. }
  50. printf("%-10s %4d %4d %-15s\n",stu[i].name,stu[i].num,stu[i].age,stu[i].addr);
  51. }
  52. fclose(fp);
  53. }
  54. int main()
  55. {
  56. printf("Please enter data of students:\n");
  57. for(int i=0;i<SIZE;i++)
  58. {
  59. scanf("%s%d%d%s",stu[i].name,&stu[i].num,&stu[i].age,stu[i].addr);
  60. }
  61. save();
  62. load();
  63. return 0;
  64. }
时间: 2024-12-06 17:26:18

C语言:用二进制方式向文件读写一组数据(fread、fwrite)的相关文章

《用二进制方式向文件读写一组数据》

/* 用二进制方式向文件读写一组数据 一般的调用方式为: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 其中: buffer:是一个地址,对fread来说,它是用来存放从文件读入的数据的存储区的地址. 对fwrite来说,是要把此地址开始的存储区中的数据向文件输出(以上指的是起始地址) size:要读写的字节数 count:要读写多少个数据项(每个数据项的长度为size) fp:FILE类型指针 从键盘输入10个学生的有关数

文本与二进制方式打开文件的区别

文本与二进制方式打开文件的区别 文本文件也叫做ASCII码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是ASSCII码字符,即存储在磁盘上只占用二进制的0x20--0x7e.另外,还有回车(0x0d),换行(0x0a),TAB(0x09)等,所以有可压缩的空间. 换行和回车是不同的,而且在不同的操作系统,解释也不相同.‘\n’一般会操作系统被翻译成"行的结束",即LF(Line-Feed):‘\r’会被翻译成"回?,即CR(Cariage-Return) 回车

以二进制方式写入文件,并测试读取

以?BinaryFormatter 方式写入,并读取 其中牵涉到"序列化对象",等找到完整数据再补上 原文:大专栏  以二进制方式写入文件,并测试读取 原文地址:https://www.cnblogs.com/chinatrump/p/11458338.html

Python自动化--语言基础4--模块、文件读写、异常

模块1.什么是模块?可以理解为一个py文件其实就是一个模块.比如xiami.py就是一个模块,想引入使用就在代码里写import xiami即可2.模块首先从当前目录查询,如果没有再按path顺序逐一查询(sys.path)3.一个模块只会被导入一次. 模块的导入方式:0.import sys 导入模块1.from sys import path from语句从模块中导入一个指定的部分(提倡的写法)2.from …… import * 把一个模块的所有内容全都导入(建议不要用这种) 3.from

C语言:字符串输出流输出文件中的数据。

#include<stdio.h> #include<string.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt","wt"); if(f==NULL) { printf("文件读取失败!\n"); return -1; } char buf[1024]; //写文件 while(strcmp(gets(buf),"quit&qu

C语言文件读写

1.用fopen打开文件 该函数的原型为FILE *fopen(const char *filename, const char *mode),第一个参数是文件名,第二个参数是打开文件的模式. 打开文件的模式主要是以下几种: “r”以文本方式打开文件,只进行读操作 “w”以文本方式打开文件,只进行写操作 “a”以文本方式打开文件,只往其末尾添加内容 “rb”以二进制方式打开文件,只进行读操作 “wb”以二进制方式打开方式,只进行写操作 “ab”以二进制方式打开文件,只往其末尾添加内容 “r+”以

NX二次开发-C语言文件读写fwrite和fread函数

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <stdio.h> 5 6 7 8 UF_initialize(); 9 10 /* 11 //设置文件路径 12 const char* filename = "D:\\123.txt"; 13 14 //二进制方式打开文件 15 FILE* fp = fopen(filename, "wb"); 16 if(fp != NULL) 17 { 18 //

【C/C++】文件读写

C语言: 1.二进制文件写 #include<stdio.h> void main() { int ar[10] = {12,23,34,45,56,67,78,89,90,100}; FILE *fp = NULL; //文件指针 fp = fopen("Text2.txt","w"); //打开文件 while(!fp) //打开失败 { cout<<"Open File Fail!"<<endl; ret

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

 1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; //通过ofstream的方式实现写入文件 open,close void main() { ofstream fout;  //ofstream输出文件 fout.open("E:\\1.txt");//打开文件 fout << "1234abcdef";