“C 程序设计讲义:第十章 对文件的输入输出.ppt”
在C语言中,文件操作是编程中一个重要的部分,它允许程序员读取、写入和处理磁盘上的数据。本讲义主要涵盖了C语言中关于文件输入输出的基本概念和常用函数。
一、文件分类
C语言中的文件主要分为ASCII码文件(文本文件)和二进制文件。文本文件以可读性强的ASCII字符编码存储数据,如文本、源代码等。而二进制文件则直接保存原始数据的二进制形式,更紧凑且适用于存储结构化数据,如图像、音频和程序编译后的执行文件。
二、文件类型
在C语言中,文件是通过一个名为`FILE`的结构体类型来表示的。这个结构体包含了关于文件的所有必要信息,比如文件位置、缓冲区等。
三、文件的打开与关闭
1. 文件的打开是通过`fopen`函数实现的,需要指定文件名和打开模式(如读、写、追加等)。成功打开文件后,`fopen`会返回一个指向`FILE`结构体的指针;如果打开失败,则返回`NULL`。
2. `fclose`函数用于关闭已打开的文件,确保数据的完整保存。不关闭文件可能导致数据丢失。
四、文件的读写
1. `fputc`和`fgetc`用于单个字符的读写,`putc`是`fputc`的别名。`putc`写入字符,`fgetc`读取字符,两者都会在失败时返回EOF(通常是-1)。
2. `fread`和`fwrite`函数用于批量读写数据,适用于二进制文件,可以一次性读取或写入多个字节。
3. `fprintf`和`fscanf`则提供了格式化的输入输出,可以方便地处理各种数据类型,如整型、浮点型等。
4. 其他如`putc`和`getc`也是常见的字符读写函数,但它们通常用于文本文件,不适用于二进制文件。
五、文件的定位
1. `rewind`函数将文件位置指针重置到文件开始。
2. `fseek`函数可以改变文件的位置,参数包括偏移量和定位类型(如文件开始、当前位置、文件末尾)。
3. `ftell`函数返回当前文件位置指针的偏移量,可用于确定文件读写位置。
六、错误检测
1. `ferror`函数用于检查文件操作是否出错,出错时返回1,正常时返回0。
2. `clearerr`函数用于清除文件错误标志,当出现错误时可以调用此函数重试文件操作。
示例题目:
1. 正确的`fopen`调用方式应选择B选项:`fp=fopen("file", "r+")`。因为要以读写方式打开已存在的文本文件,"r+"模式允许读写操作。
2. 下面的代码段用于检查文件能否成功打开:
```c
if ((fp=fopen("file.c", "r")) == NULL) {
printf("can't open file\n");
exit(0);
}
```
如果`fopen`失败,`fp`将等于`NULL`,这段代码会打印错误消息并退出程序。
理解这些基本的文件操作概念和函数,是进行C语言文件编程的基础。在实际开发中,根据具体需求灵活运用这些工具,可以有效地处理文件数据,实现复杂的文件系统交互。