C语言——文件的基本操作

2022-05-30 15:10:13 浏览数 (1)

C语言中文件的基本操作包括:文件的打开、文件的关闭以及文件的输入和输出。除了标准的输入、输出文件外,其它的文件都必须先打开在使用,使用后必须关闭该文件。

  • 文件指针

文件指针是一个指向文件有关信息的指针,这些信息包括文件名、状态和当前位置,他们保存在一个机构体变量中。在使用文件时需要在内存中为其分配空间,用来存放文件的基本信息。C语言中规定该结构体类型为FILE型。

文件指针的定义:

代码语言:javascript复制
FILE *fp;//fp是一个指向FILE类型的指针变量
  • 文件的打开
代码语言:javascript复制
FILE *fp;
fp = fopen(const char * filename, const char * mode);

在这里,filename 是字符串,用来命名文件,访问模式 mode 的值可以是下列值中的一个:

如果处理的是二进制文件,则需使用下面的访问模式来取代上面的访问模式:

代码语言:javascript复制
"rb", "wb", "ab", "rb ", "r b", "wb ", "w b", "ab ", "a b"

如果要以只读方式打开文件名为test.txt的文本文件,应写成如下形式:

代码语言:javascript复制
FILE *fp;
fp = fopen("test.txt", "r");

如果打开成功,则返回一个有确定指向的FILE类型指针;若打开失败,则返回NULL。

  • 文件的关闭

文件在使用完毕后,应该使用fclose函数将其关闭。

fclose的一般形式为:

代码语言:javascript复制
fclose(fp);//fp是文件指针

当正常关闭文件后,fclose函数返回值为0,否则返回EOF.

为什么使用完文件后要将其关闭?

关闭文件的目的是为了防止因为没有关闭 文件而造成的数据流失。

文件的读写

打开文件后,就可以对文件进行读写操作,C语言中提供了多种文件操作函数,接下来我们具体的看一下。

fputc函数

fputc函数的定义形式如下:

代码语言:javascript复制
ch = fputc(ch, fp);

该函数的作用是将一个字符写到磁盘文件(fp所指向的文件)中去。如果函数输出成功则返回输出的字符,失败则返回EOF.

实例:

代码语言:javascript复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
  FILE* fp;
  char ch;

  if ((fp = fopen("c:test.txt", "w")) == NULL)
  {
    printf("open file filed!");
  }
  ch = getchar();
  while (ch != '*')
  {
    fputc(ch, fp);
    ch = getchar();
  }
  fclose(fp);
}

运行结果:

fgetc函数

fgetc函数的定义形式如下:

代码语言:javascript复制
ch = fgetc(fp);

该函数的作用是从指定的文件(fp所指向的文件)读入一个字符赋值给ch。当函数遇到文件结束符时将返回一个文件结束标志EOF。

实例:

代码语言:javascript复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
  FILE* fp;
  char ch;

  if ((fp = fopen("c:\test.txt", "r")) == NULL)
  {
    printf("open file filed!");
  }
  ch = fgetc(fp);
  while (ch != EOF)
  {
    putchar(ch);
    ch = fgetc(fp);
  }
  fclose(fp);
}

运行结果:

今天就先介绍到这,后续介绍剩下的几个文件操作函数。

END

0 人点赞