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();函数提取相应内容;再输出该内容。