实验8是关于文件操作的,主要分为两个部分:文件类型的程序验证和源程序修改替换。 在8.1中,程序的目的是验证文本文件和二进制文件的存储方式以及流式文件的读写方法。程序创建了两个文件,一个二进制文件"abc1.bin"和一个文本文件"abc2.txt"。它将两个short型变量a和b(分别为0x253f和0x7b7d)写入二进制文件,并以十六进制格式写入文本文件。当读取二进制文件时,它会按照字节顺序输出,因此原始数据的ASCII码对应字符会被打印出来,即"?%}{"。而文本文件则按照整数格式打印出原始的十六进制值"253f 7b7d"。 如果将两处`sizeof(short)`改为`sizeof(char)`,每个short型变量会被拆分成两个char型,所以二进制文件仅包含原始数据的一部分,导致输出结果改变。同样,将`fprintf`中的格式字符串`"%hx %hx"`改为`"%d %d"`,使得数据以十进制整数形式写入文本文件,输出也会相应变化。 在8.2.2中,目标是编写一个程序,将指定的文本文件内容显示在屏幕上。源程序中存在逻辑错误:在`while`循环的条件语句中,`!=`操作符的优先级高于赋值`=`,导致不能正确判断`fgetc()`的返回值。修正方法是在赋值操作外加括号,即`while((ch=fgetc(fp))!=EOF)`。修改后的程序可以正确地读取并显示文本文件内容。 另外,题目要求使用`freopen`函数改写main函数,这可以通过将标准输入或输出重定向到指定的文本文件实现。`freopen`函数允许我们改变文件流的关联文件,例如将标准输入`stdin`或标准输出`stdout`指向其他文件。在改写后的代码中,可以使用`freopen`将标准输入指向要读取的文本文件,这样程序就会自动处理输入,无需使用文件指针。 总结来说,这个实验涵盖了文件操作的基础知识,包括二进制文件和文本文件的区别,流式文件的读写,以及错误检查和修复。同时,它还引入了`freopen`函数的概念,强调了输入输出重定向在处理文件内容时的重要性。对于理解和掌握C语言中的文件操作,这是一个很好的实践案例。
剩余11页未读,继续阅读
- 粉丝: 42
- 资源: 295
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 《御剑下载珍藏版下载》
- Python编程:从入门到实践(第3版) 随书源码
- mybatis-plus-join-sql
- symphony-报告类资源
- ContextMenuManager-windows
- Visio-visio
- NutzWk-Java资源
- hssvm-报告类资源
- 配套PPT-Python编程:从入门到实践(第3版)已更新到11章
- IoTSharp-c#
- EasyAi-深度学习
- xe-utils-javascript
- 从低通滤波器到高通滤波器及小波函数的构造-附Matlab源程序.zip
- kisso-Java资源
- ExDUIR.NET-windows
- navicat_password_decrypt-navicat
评论0