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表示写入失败,返回其他值表示写入成功。
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表示上一个文件操作成功。
发表评论