ANSI C文件IO管理
□★实验4.2.1-3更新缓冲区内容
示例程序:setbuf_example.c
1.运行示例程序。
2.给出运行结果及分析。
★在示例程序的基础上添加对fflush函数的测试。在设计文档中写出测试思路。并给出运行结果及分析。
运行结果:
程序分析:
第一个测试写入数据,查看当前缓冲区内容为空,因为该程序设置为关闭缓冲,所以缓冲中没有内容;第二个测试写入数据,当前缓冲中没有内容,因为该程序设置为无缓冲,一有数据输入便保存到磁盘中;第三个测试写入数据,当前缓冲区内容为world,因为该程序设置的是行缓冲,到达一行或者遇到换行符便将内容存入磁盘中;第四个测试当前缓冲中有全部内容,因为该程序设置为全缓冲当缓冲区满或者调用(fclose();/fflush();)函数才会刷新,所以缓冲区内有所有内容。
□□实验4.2.3文件流定位
1.定义一个有关学生考试成绩的结构体,将10名学生的信息存入文件。
2.用户输入指定学生的编号,在文件中定位到该学生信息,输出到屏幕上。
实验代码:
程序分析:
用可写方式打开文件student.txt,如果没有改文件则在对应路径下创建文件。将数组stu1[ ]的内容保存到文件中。输入学号n,用函数fseek();定位当前位置,文件开头后n-1个结构体大小的位置,读一个结构体大小的内容放入stu3中,然后输出stu3的内容。
运行结果:
实验4.3.4 获取CPU的当前信息
1.用sscanf函数获取CPU当前信息,输出到屏幕上。
实验运行:
实验分析:
用函数fopen();可读方式打开相应路径下的文件,用函数strstr();找到和“cpu MHz”有相同字符的位置,从此开始复制入*pos中用sscanf();函数提取相应内容;再输出该内容。