C语言文件操作实验:文本与二进制文件读写
需积分: 0 177 浏览量
更新于2024-08-04
收藏 107KB DOCX 举报
"U201610504-刘逸帆-实验八1"
实验8的内容主要涉及文件操作,特别是对文本文件和二进制文件的理解与使用。实验目的是让学生熟悉这两种文件在磁盘上的存储方式,并熟练掌握流式文件的读写方法。
在8.2.1部分,实验提供了一个程序示例,该程序创建了两个文件:"abc1.bin" 和 "abc2.txt"。"abc1.bin" 是一个二进制文件,"abc2.txt" 是一个文本文件。程序首先将两个short型变量a和b的值写入二进制文件,然后将它们以十六进制格式写入文本文件。其中,`fwrite`函数用于向二进制文件写入数据,而`fprintf`函数用于向文本文件写入格式化的字符串。
当程序读取二进制文件时,它以字符方式逐字节读取并打印,因此原始输出结果包含了两个short型变量在内存中的字节表示,转换为ASCII字符后,表现为"?%}{"。而文本文件的内容是以十六进制形式打印的,即"253f7b7d"。
如果将两处`sizeof(short)`改为`sizeof(char)`,每次写入的字节数会减少,因此只写入了a和b的低字节,导致输出结果仅包含"?"和"}",因为这是原始数据的低字节在ASCII码表中的对应字符。
当`fprintf(fp2,"%hx%hx",a,b)`改为`fprintf(fp2,"%d%d",a,b)`时,输出格式由十六进制变为十进制整数,因此文本文件的内容会是"a"和"b"的十进制表示,即"99199"和"31613",而不是之前的十六进制形式。
8.2.2部分是一个源程序修改替换题,目标是编写一个程序,接收命令行参数(文件名),并将文本文件的内容在屏幕上显示出来。这通常涉及到`fopen`、`fgets`或`fread`等文件读取函数的使用。在初始程序中可能存在逻辑错误,比如未正确打开文件、未能正确读取文件内容或者没有处理命令行参数。学生需要通过分析程序的执行结果找出问题,并进行相应的修改和调试,以确保程序能正确读取并显示文本文件的内容。
通过这个实验,学生不仅可以了解文件的不同类型和它们的存储方式,还能深入理解文件操作函数的用法,以及在实际编程中如何处理二进制和文本数据。同时,这也锻炼了他们排查和解决程序错误的能力。
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-08 上传
2022-08-04 上传
2022-08-03 上传
MsingD
- 粉丝: 42
- 资源: 296
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析