C 语言(9)

9.文件操作

9.1 文件指针

定义说明文件指针的一般形式为:

FILE *指针变量标识符;

9.2 文件的打开和关闭

9.2.1 文件的打开(fopen)

fopen 函数用来打开一个文件,其调用的一般形式为:

文件指针名=fopen(文件名,使用文件方式);

文件使用方式

              意义

    “rt”

    只读打开一个文本文件,只允许读数据

    “wt”

    只写打开或建立一个文本文件,只允许写数据

    “at”

    追加打开一个文本文件,并在文件末尾写数据

    “rb”

    只读打开一个二进制文件,只允许读数据

    “wb”

    只写打开或建立一个二进制文件,只允许写数据

    “ab”

    追加打开一个二进制文件,并在文件末尾写数据

    “rt+”

   读写打开一个文本文件,允许读和写

    “wt+”

   读写打开或建立一个文本文件,允许读写

    “at+”

   读写打开一个文本文件,允许读,或在文件末追加数据

    “rb+”

   读写打开一个二进制文件,允许读和写

    “wb+”

   读写打开或建立一个二进制文件,允许读和写

    “ab+”

   读写打开一个二进制文件,允许读,或在文件末追加数据

9.2.2文件的关闭(fclose)

fclose 函数调用的一般形式是:

fclose(文件指针);

9.3 文件的读写

9.3.1 字符读写函数: fgetc 和 fputc

1)  fgetc 函数的功能是从指定的文件中读一个字符,函数调用的形式为:

字符变量=fgetc(文件指针);

2)  fputc 函数的功能是把一个字符写入指定的文件中,函数调用的形式为:

fputc(字符量,文件指针);

9.3.2 字符串读写函数:fgets和fputs

1) fgets函数是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:

fgets(字符数组名,n,文件指针);

其中的 n 是一个正整数。表示从文件中读出的字符串不超过  n-1 个字符。在读入的最后一个字符后加上串结束标志 '\0'。

2) fputs函数是向指定的文件写入一个字符串,其调用形式为:

fputs(字符串,文件指针);

中字符串可以是字符串常量,也可以是字符数组名,或指针变量

9.3.3 数据块读写函数: freed 和 fwrite

读数据块函数调用的一般形式为:

fread(buffer,size,count,fp);

写数据块函数调用的一般形式为:

fwrite(buffer,size,count,fp);

其中 :

buffer 是一个指针,在 fread 函数中,它表示存放输入数据的首地址。在 fwrite 函数中,它表示存放输出数据的首地址。

  • size  表示数据块的字节数。
  • count 表示要读写的数据块块数。
  • fp 表示文件指针。
9.3.4 格式化读写函数: fscanf 和 fprinf

这两个函数的调用格式为:

  • fscanf(文件指针,格式字符串,输入表列);
  • fprintf(文件指针,格式字符串,输出表列);

9.4 文件的随机读写

移动文件内部位置指针的函数主要有两个,即 rewind 函数和 fseek 函数。

rewind 的调用格式为:

rewind(文件指针);

它的功能是把文件内部的位置指针移到文件首。

fseek 函数用来移动文件内部位置指针,其调用格式为:

fseek(文件指针,位移量,起始点);

“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。

9.5 文件检测函数

 9.5.1 文件结束检测函数 feof 函数

调用格式:

feof(文件指针);

功能:判断文件是否处于文件结束位置,如文件结束,则返回值为 1,否则为 0。

 9.5.2 读写文件出错检测函数

ferror 函数调用格式:

ferror(文件指针);

功能:检查文件在用各种输入输出函数进行读写时是否出错。如 ferror 返回值为 0 表示未出错,否则表示有错。

9.5.3 文件出错标志和文件结束标志置 0 函数

Clearer 函数调用格式:

clearerr(文件指针);

功能:本函数用于清除出错标志和文件结束标志,使它们为 0 值。

posted @   码上领航者  阅读(31)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示