【C语言】手把手教你文件操作

文章目录

  • 一、前言
  • 二、文件的打开和关闭
    • 1. fopen函数
    • 2. fclose函数
  • 三、文件的顺序读写
  • 四、文件的随机读写
    • 1. fseek函数
    • 2. ftell函数
    • 3. fwind函数

一、前言

程序运行时,数据存放在内存中,而当程序退出后,数据也就不复存在。
想做到数据持久化,我们可以把数据存放在磁盘,或者放到数据库里。
而在C语言中,利用文件操作,就可以将数据存放在电脑的硬盘上。

程序设计中,文件一般分两种:程序文件、数据文件。

  • 程序文件
    • 源文件(.c)
    • 目标文件(windows环境后缀为.obj)
    • 可执行文件(windows环境后缀为.exe)
  • 数据文件
    • 程序运行时,要从中读写数据的文件。

二、文件的打开和关闭

读写之前应该先打开文件,使用结束之后要关闭文件。

1. fopen函数

FILE * fopen ( const char * filename, const char * mode );
  • fopen函数用于打开文件。
  • filename是要打开的文件名,mode是文件的使用方式。
  • FILE是描述文件信息的结构体类型,在头文件stdio.h中定义
  • 打开文件后,函数返回FILE*类型的文件指针。

需要注意,在字符串中表示\时,必须使用转义字符\\
所以filename应该如下图所示:
【C语言】手把手教你文件操作_第1张图片
文件名由文件路径、文件名主干和文件后缀三个部分组成。
例如对于E:\test.txt来说:

  • E:\是文件路径
  • test是文件名主干
  • .txt是文件后缀

如果filename中省略文件路径,只写文件名主干和文件后缀的话,文件会默认保存在本工程的目录下。
【C语言】手把手教你文件操作_第2张图片
文件的使用方式有以下这些:
【C语言】手把手教你文件操作_第3张图片

  • 文本文件是指以ASCII码形式存储的文件,每个字符占1个字节。
    • 如10000这个数据以文本文件形式存储,那么每个数字看作一个字符,总共占5个字节。
  • 二进制文件是指数据以二进制形式存储的文件。
    • 如10000这个数据以二进制文件形式存储,那么只需将10000转换成二进制存入内存中就行了。

2. fclose函数

int fclose ( FILE * stream );
  • fclose函数用于关闭文件。
  • stream是要关闭的文件的文件指针。
  • fclose函数关闭文件后不会置空文件指针,需手动置空。

三、文件的顺序读写

C语言提供了一系列文件输入输出函数。
【C语言】手把手教你文件操作_第4张图片
注意,这里的输入是从文件中读内容,输出是往文件里写内容
每个函数的具体用法可以查阅文档学习。

四、文件的随机读写

1. fseek函数

int fseek ( FILE * stream, long int offset, int origin );
  • 文件在读写时,文件指针指向的位置是会随着读写而改变的。
  • fseek函数可以用于将文件指针定位到我们想要的位置。
  • stream是文件指针,offset是我们想要设置的文件指针的偏移量。
  • origin是从哪里开始偏移,我们可以设置为SEEK_SET(文件起始位置)、SEEK_CUR(文件指针当前位置)、SEEK_END(末尾)。

2. ftell函数

long int ftell ( FILE * stream );
  • 该函数用于返回文件指针相对于起始位置的偏移量。
  • 我们可以利用ftell函数来获取文件指针当前的位置。

3. fwind函数

void rewind ( FILE * stream );
  • 该函数用于让文件指针回到文件的起始位置。

你可能感兴趣的:(C语言重点突破,c语言,开发语言)