当前位置: 首页 > news >正文

文件相关函数的总结与记忆

1.字符的输入输出

char ch = getchar();//不需要传递参数
putchar('a')

putc、getc与fputc、fgetc一致
//必须用int接受,因为返回int类型,char因为编译器不同而可能为无符号和有符号
int ch
if( (ch = getchar() ) != EOF) 

2.行的输入输出

也可以用于二进制的流,但是多数用于文本流

//对于stdio、stdout
puts("ashore");

char string [256];
//不接受\n,追加\0字符串结束符
gets (string);

//对于fp
fputs("Hello world",fp);
//读入sizeof(str) -1 个字符或者\n 停止,追加\0字符串结束符,\n会被接收
fgets(str,sizeof(str),fp);

3.块的输入输出

//返回均是成功写入或者读入的元素数量,小于指定数量,说明遇到错误,feof结合ferror判断
fwrite(a, sizeof(a[0]), sizeof(a)/sizeof(a[0]),fp);

fread(a, sizeof(a[0]), sizeof(a)/sizeof(a[0]),fp);

小总结:字符、行、块的输入输出fp均放在最后,块输入输出另一个文件流放在首位,接着是数量(数理解为单个元素字节数,量理解为元素数量

4.文件定位

//SEEK_END,SEEK_CUR,SEEK_END,偏移量可以为负数
fseek(fp, -1, SEEK_END);

//告知文件偏移起始位置的字节数
ftell(fp)

//等价于fseek(fp, 0, SEEK_SET);
rewind(fp)

5.fprintf和fscanf

//注意fscanf和sprintf返回值均是成功写入或者读取的数据项个数
char str [80];
float f;
FILE * pFile;
pFile = fopen ("myfile.txt","w+");
fprintf (pFile, "%f %s", 3.1416, "PI");
rewind (pFile);
fscanf (pFile, "%f", &f);
fscanf (pFile, "%s", str);

//循环读取文本文件单个单词
if(fscanf(fp,"%19s",buff) == 1)

总结:文件定位和文件格式化输入输出这几个fp都是放在首位,与前面字符、块、行fp所在位置不同

相关文章:

  • 简洁、实用、无插件和更安全为特点的WordPress主题
  • 《南京日报》专题报道 | 耘瞳科技“工业之眼”加码“中国智造”
  • Billu_b0x靶机攻略
  • linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢
  • 微信小程序检测滚动到某元素位置的计算方法
  • 34、在 deque中使用 [] 操作符和 at() 方法有何区别?
  • 深度强化学习中的深度神经网络优化策略:挑战与解决方案
  • JavaScript |(五)DOM简介 | 尚硅谷JavaScript基础实战
  • 以mysql 为例, 在cmd 命令行连接数据,操作数据库,关闭数据库的详细步骤
  • java string 类型转list实体类且忽略实体类中没有的字段
  • 城市更新浪潮下的破局之道:中建海龙模块化集成建筑技术的新应用
  • 数智读书笔记系列021《大数据医疗》:探索医疗行业的智能变革
  • 接收与发送ipv6数据包
  • 北斗设备启动流程与时长解析
  • W80x使用WM IoT SDK 2.X 开发(二)驱动tft屏幕
  • JavaScript |(六)DOM事件 | 尚硅谷JavaScript基础实战
  • JVM 学习前置知识
  • 2025年渗透测试面试题总结-某四字大厂实习面试复盘 一面 二面 三面(题目+回答)
  • 【赵渝强老师】达梦数据库MPP集群的架构
  • Rust练手项目第一章
  • 坚决打好产业生态培育攻坚战!陈吉宁调研奉贤区
  • 阿联酋与美国达成超过2000亿美元协议
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部
  • 现场丨在胡适施蛰存等手札与文献间,再读百年光华
  • 为何选择上海?两家外企提到营商环境、人才资源……