📜  FILE* - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:30:45.593000             🧑  作者: Mango

FILE* - C 编程语言

在 C 编程语言中,FILE* 是一个指向 FILE 类型结构体的指针,它用于访问文件流。文件流可以是标准输入、标准输出,也可以是打开的文件。

文件相关操作
打开文件

要想访问一个文件流,首先需要打开文件。可以使用 fopen() 函数打开一个文件。它的定义如下:

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

其中,filename 表示要打开文件的文件名,mode 表示文件的打开模式,有以下几种:

  • "r": 只读模式,文件必须存在;
  • "w": 写模式,如果文件不存在则创建一个新文件,如果文件已经存在则清空文件内容;
  • "a": 附加模式,如果文件不存在则创建一个新文件,如果文件已经存在则在文件末尾添加新的内容。

下面是一个简单的打开文件的例子:

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 编程语言中操作文件流的关键类型之一。掌握了它,就可以轻松地进行文件的读写操作。