C语言是一种广泛使用的编程语言,它提供了丰富的文件操作功能,在本文中,我们将详细介绍C语言中的文件操作,包括文件的打开、关闭、读取、写入等操作。

1、文件指针

在C语言中,文件操作是通过文件指针来实现的,文件指针是一个指向FILE结构体的指针,通过这个指针,我们可以对文件进行各种操作,在使用文件之前,我们需要先定义一个文件指针,并使用fopen()函数打开文件。

FILE *fp;
fp = fopen("example.txt", "r");

2、文件打开

使用fopen()函数可以打开一个文件,fopen()函数的原型如下:

FILE *fopen(const char *filename, const char *mode);

filename是文件名,mode是文件打开模式,常见的文件打开模式有:

- "r":以只读方式打开文件。

- "w":以写入方式打开文件,如果文件不存在则创建新文件,如果文件存在则清空原内容。

- "a":以追加方式打开文件,如果文件不存在则创建新文件,如果文件存在则在原内容后追加新内容。

- "r+":以读写方式打开文件。

- "w+":以读写方式打开文件,如果文件不存在则创建新文件,如果文件存在则清空原内容。

- "a+":以读写方式打开文件,如果文件不存在则创建新文件,如果文件存在则在原内容后追加新内容。

3、文件关闭

使用完文件后,我们需要关闭文件,释放系统资源,可以使用fclose()函数来关闭文件,fclose()函数的原型如下:

int fclose(FILE *stream);

stream是文件指针,fclose()函数返回0表示关闭成功,返回非0表示关闭失败。

4、文件读取

使用fgets()函数可以读取文件中的一行内容,fgets()函数的原型如下:

char *fgets(char *str, int n, FILE *stream);

str是存储读取内容的缓冲区,n是要读取的最大字符数,stream是文件指针,fgets()函数返回str,如果读取成功则返回非空值,否则返回NULL。

5、文件写入

使用fputs()函数可以向文件中写入一行内容,fputs()函数的原型如下:

int fputs(const char *str, FILE *stream);

str是要写入的内容,stream是文件指针,fputs()函数返回EOF表示写入失败,返回其他值表示写入成功。

C语言文件操作详解

6、文件定位

使用fseek()函数可以改变文件指针的位置,fseek()函数的原型如下:

int fseek(FILE *stream, long offset, int origin);

stream是文件指针,offset是偏移量,origin是起始位置,起始位置可以是:

- SEEK_SET:从文件开头开始计算偏移量。

- SEEK_CUR:从当前位置开始计算偏移量。

- SEEK_END:从文件末尾开始计算偏移量。

fseek()函数返回0表示定位成功,返回非0表示定位失败,使用rewind()函数可以将文件指针移动到文件开头,rewind()函数的原型如下:

void rewind(FILE *stream);

7、判断文件结束

使用feof()函数可以判断是否到达文件末尾,feof()函数的原型如下:

int feof(FILE *stream);

stream是文件指针,feof()函数返回非0表示到达文件末尾,返回0表示未到达文件末尾,使用ferror()函数可以判断上一个文件操作是否出错,ferror()函数的原型如下:

int ferror(FILE *stream);

stream是文件指针,ferror()函数返回非0表示上一个文件操作出错,返回0表示上一个文件操作成功。