博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件I/O
阅读量:5894 次
发布时间:2019-06-19

本文共 1830 字,大约阅读时间需要 6 分钟。

hot3.png

fgets&fputs

#include
int main(void){ FILE* fr = fopen("student_len.txt","r"); FILE* fw = fopen("studemt.txt","w"); char temp[1024]=""; while(fgets(temp,1024,fr)!=NULL) { fputs(temp,fw); } return 0;}
  • fgets读取一行;
  • 参数一缓冲数组,参数二缓冲数组大小,参数三源文件流;
  • fputs输出一行
  • 参数一缓冲数组,参数二目标文件流;

总结

  • fgets读取文本中一行数据并且结尾判定以NULL为条件;
  • fputs输出一行并且输出后会换行,具有追加的能力不会在第二次输出覆盖掉前一次输出的信息;

fgetc&fputc

#include
int main(void){ FILE* fr = fopen("string.txt","r"); FILE* fw = fopen("strings.txt","w"); char ch ='\0'; while((ch=fgetc(fr))!=-1) { putc(ch,fw); } return 0;}
  • fgetc读取一个字符;
  • 参数只有一个源文件流,返回的是字符的ASCII码;
  • fputc输出一个字符;
  • 参数一单个字符,参数二目标文件流;

总结

  • fgetc读取文本中一行数据并且结尾以-1为条件;
  • fputc输出一个字符,输出后会换行并且,具有追加能力不会第二次输出覆盖掉前一次输出的信息;

fread&fwrite

  • 写入到二进制文件
#include
#include
#define LEN 20typedef struct emp{ int id; char name[LEN]; float many;}EMP;int main(void){ EMP ep[2]; memset(ep,0,sizeof(ep)); FILE* fw = fopen("str.bin","w"); for(int i=0;i<2;i++) { printf("请输入id:"); scanf("%d",&(ep+i)->id); printf("请输入姓名:"); scanf("%s",(ep+i)->name); printf("请输入薪资:"); scanf("%f",&(ep+i)->many); } fwrite(ep,sizeof(EMP),2,fw); return 0;}
  • 读取回结构体
#include
#include
#define LEN 20typedef struct emp{ int id; char name[LEN]; float many;}EMP;int main(void){ EMP ep[2]; memset(ep,0,sizeof(ep)); FILE* fr = fopen("str.bin","r"); fread(ep,sizeof(EMP),2,fr); for(int i=0;i<2;i++) { printf("%d\n",(ep+i)->id); printf("%s\n",(ep+i)->name); printf("%.2f\n",(ep+i)->many); } return 0;}

总结

  • fread从一个二进制文件中读取信息并且不需要遍历
  • fwrite把一个数组写入到二进制文件中,且不需要遍历写入
  • 参数一存放数据的数组,参数二数组内元素的单个字节大小,参数三数组内有多少个元素,参数四文件流

转载于:https://my.oschina.net/mistylinux/blog/1608399

你可能感兴趣的文章
安全的类构造器[摘自effective java]
查看>>
多媒体客服的选择与应用
查看>>
为什么auto_ptr智能指针不能作为STL标准容器的元素
查看>>
关系型数据库分布式中间件 mycat 部署
查看>>
大家都是拷贝,凭什么你这么秀?
查看>>
【有关问题处理】Icon.png pngcrush caught libpng error:Read
查看>>
Java乱码
查看>>
项目托管地址通知
查看>>
Firefox下Flash访问服务器sessionId问题
查看>>
软件开发入门学习的个人看法
查看>>
分布式-组件【ELKK】统一日志平台
查看>>
MySQL中 散列索引和B树索引的一点区别
查看>>
C Primer Plus 第10章 数组和指针 编程练习答案
查看>>
分布式事务的多种解决方案
查看>>
ping 的用法
查看>>
安卓sqlite3数据库操作
查看>>
抽象类-1
查看>>
vim 安装 Exuberant Ctags
查看>>
使用CentOS DVD作为默认yum源
查看>>
mybatis缓存机制详解(二)——缓存装饰器
查看>>