📅  最后修改于: 2023-12-03 15:30:45.593000             🧑  作者: Mango
在 C 编程语言中,FILE* 是一个指向 FILE 类型结构体的指针,它用于访问文件流。文件流可以是标准输入、标准输出,也可以是打开的文件。
要想访问一个文件流,首先需要打开文件。可以使用 fopen()
函数打开一个文件。它的定义如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename
表示要打开文件的文件名,mode
表示文件的打开模式,有以下几种:
下面是一个简单的打开文件的例子:
FILE *fp;
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
使用 fclose()
函数可以关闭一个已经打开的文件。它的定义如下:
int fclose(FILE *stream);
其中,stream
表示文件流指针。需要注意的是,关闭文件之前必须确保已经完成了对文件的所有读写操作。
下面是一个简单的关闭文件的例子:
if (fclose(fp) != 0) {
printf("文件关闭失败!\n");
return 1;
}
使用 fgetc()
和 fputc()
可以读写一个字符,使用 fgets()
和 fputs()
可以读写一行,使用 fread()
和 fwrite()
可以读写一块数据。
下面是一个简单的从文件中读取一行的例子:
char buf[100];
fgets(buf, 100, fp);
printf("%s", buf);
下面是一个简单的向文件中写入一块数据的例子:
char buf[] = "example";
fwrite(buf, strlen(buf), 1, fp);
使用 fseek()
和 ftell()
可以操作文件指针。使用 fseek()
可以将文件指针移动到指定位置,使用 ftell()
可以返回当前文件指针的位置。
下面是一个简单的将文件指针移动到文件末尾的例子:
fseek(fp, 0, SEEK_END);
下面是一个简单的获取文件大小的例子:
long size = ftell(fp);
FILE* 是 C 编程语言中操作文件流的关键类型之一。掌握了它,就可以轻松地进行文件的读写操作。