目录

  • 1 计算机概述
    • 1.1 计算机简介
    • 1.2 计算机系统
    • 1.3 数值在计算机中的表示
  • 2 C语言概述
    • 2.1 C语言发展及特点
    • 2.2 C语言程序的运行步骤和开发环境
    • 2.3 简单的C语言程序
  • 3 C语言基础
    • 3.1 变量、常量及数据类型
    • 3.2 运算符和表达式
    • 3.3 输入、输出
  • 4 选择结构
    • 4.1 计算机编程和算法
    • 4.2 if语句
    • 4.3 if嵌套和if多分支
    • 4.4 switch语句
  • 5 循环结构
    • 5.1 while语句和do...while语句
    • 5.2 for语句
    • 5.3 break语句和continue语句
    • 5.4 goto语句构成的循环
    • 5.5 嵌套循环结构
    • 5.6 程序设计举例
  • 6 函数
    • 6.1 函数的定义与调用
    • 6.2 函数的嵌套调用和递归调用
    • 6.3 作用域和生命周期
    • 6.4 章节小结与测试
  • 7 数组
    • 7.1 一维数组及应用
    • 7.2 二维数组及应用
    • 7.3 字符数组
    • 7.4 数组作为函数参数
    • 7.5 章节小结与测试
  • 8 指针
    • 8.1 指针变量
    • 8.2 指针与数组
    • 8.3 指针的多种形态
  • 9 字符串
    • 9.1 字符串概念及输入输出
    • 9.2 字符串函数
    • 9.3 指针与字符串
    • 9.4 章节小结与测试
  • 10 编译预处理
    • 10.1 宏定义
    • 10.2 文件包含
    • 10.3 条件编译
  • 11 结构体、共用体和用户定义类型
    • 11.1 结构体类型变量
    • 11.2 结构体类型数组与指针
    • 11.3 结构体与函数
    • 11.4 用指针处理链表
    • 11.5 共用体
  • 12 位运算
    • 12.1 位运算的概念和运算规则
  • 13 文件
    • 13.1 C文件概述
    • 13.2 文件的打开与关闭
    • 13.3 文件读写
    • 13.4 位置指针的定位
文件读写


学习目标:

    掌握字符读写函数的使用

    掌握字符串读写函数的使用

    掌握格式化读写函数的使用

    掌握块数据读写函数的使用

重难点:

    字符读写函数的使用

    字符串读写函数的使用

    格式化读写函数的使用

    块数据读写函数的使用



一、字符读写

 

函数名

 

 

调用形式

 

 

功能

 

 

返回值

 

 

fgetc

 

 

fgetc(fp)

 

 

fp指向的文件读入一个字符

 

 

读成功,带回所读的字符,失败则返回文件结束标志EOF(-1)

 

 

fputc

 

 

fputc(ch,fp)

 

 

把字符ch写到文件指针变量fp所指向的文件中

 

 

写成功,返回值就是输出的字符;输出失败,则返回EOF(即-1

 

1fputc——将字符写入文件

函数原型:int fputc( int c, FILE *fp );

第一形参c:是要写入文件的字符,它虽被定义为整型,但只使用最低位的一个字节

第二形参fp :文件指针

2fgetc——从文件中读出一个字符

函数原型:int fgetc( FILE *fp );

形参fp :文件指针


例1:从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。


 

例2:将一个磁盘文件中的信息复制到另一个磁盘文件中。今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。


二、字符串读写

 

函数名

 

 

调用形式

 

 

功能

 

 

返回值

 

 

fgets

 

 

fgets(str,n,fp)

 

 

fp指向的文件读入长度为(n-1)的字符串,存放到字符数组str

 

 

读成功,返回地址str,失败则返回NULL)

 

 

fputs

 

 

fputs(str,fp)

 

 

str所指向的字符串写到文件指针变量fp所指向的文件中

 

 

写成功,返回0;否则返回非0

 

(3fputs——将字符串写入文件

函数原型:int fputs(const char *s, FILE *fp);

第一形参:要写入的文件的字符串

第二形参fp :文件指针

fputs函数可以向指定的文件输出一个字符串。如:

      fputs(″Chian″,fp);

4fgets——从文件读取字符串

函数原型:

     char *fgets(char *s, int n, FILE *fp);

第一形参:指向待赋值字符串的首地址

第二形参n:  控制读取串的字符个数,最多n-1

第三形参fp :文件指针

fgets函数可以从指定的文件读入一个字符串。如:

        fgets(str,n,fp); 

例3:从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。


三、格式化读写

5fprintf——将内容按格式写入文件

函数原型:int fprintf( FILE *fp,

  constchar* format, 输出参数1, 输出参数2… );

第一形参fp :文件指针

第二形参format :格式控制字符串

其余参数:输出参数表列为待输出的数据

函数功能:根据指定的格式(format参数)发送数据(输出参数)到fp打开的文件

函数返回值:正常写入情况下返回写入文件的字符个数,出错返回EOF

fprintfprintf的关系:

printffprintf的特殊形式

语句printf("There are %d cats here.\n",2);与语句fprintf(stdout,"Thereare %d cats here.\n",2);完全等效

stdout就是默认的对应显示器的文件指针,无需定义

使用fprintf的方式与printf几乎是一样的,向显示器按何种格式输出什么内容,到了fprintf函数中控制方式不变,只需要在最前面加一个文件指针参数,这些内容就写到文件指针打开的对应文件中而不是输出到显示器上

6fscanf——从文件按格式读取内容给变量

函数原型:int fscanf( FILE *fp,

                   const char* format, 地址1, 地址2… );

第一形参fp :文件指针

第二形参format :格式控制字符串

其余参数:地址表列为输入数据的存放地址

函数功能:根据format参数指定的格式从fp打开的文件读取数据存到地址参数指定的内存中

函数返回值: 返回实际读取的数据个数,出错或者到结尾返回EOF


fscanffprintf的应用举例:

例4: 事先用记事本在D盘根目录下创建了一个文本文件originalscore.txt,存放了学生的计算机考试成绩,具体信息如下,包含了8个学生的学号、姓名、分数和排名(初始排名均设为0):

请从该原始文件中读出所有学生的信息,然后按考试成绩由高分到低分排名并计算每个学生的名次,同分同名次,最后将排过名的记录再依次存入另一个文件中,同时屏幕显示。

源文件名和排名后的文件名均由键盘输入提供



四、块数据读写

7fwite——将内容按规定字节写入文件

函数原型:int fwrite( const void *buffer,

                             int size, int n,FILE *fp );

第一形参buffer :要输出数据在内存中的首地址

第二形参size :一个数据块的字节数

第三形参n:数据块的个数

第四形参fp :文件指针

函数功能:从内存的buffer地址开始,将连续

   n*size个字节的内容原样复制到fp打开的文件中

函数返回值:实际写入的数据块个数

8fread——从文件读取规定字节内容给变量

函数原型:int fread( void *buffer, int size,

                                    int n, FILE*fp );

第一形参buffer :要输入数据在内存中的首地址

第二形参size :一个数据块的字节数

第三形参n:数据块的个数

第四形参fp :文件指针

函数功能:从fp打开的文件的当前位置开始,连续读取n*size个字节的内容,存入buffer作为首地址的内存空间里

函数返回值:实际读入的数据块个数

fwritefread函数的应用举例:

例5有一批学生的数据,包括学号、姓名、考试成绩等信息,要求使用fwrite函数将其存入文件D:\computer.dat文件中。


例6使用fread函数读取文件  D:\computer.dat文件的内容并输出至屏幕。