C语言中文件的基本操作包括:文件的打开、文件的关闭以及文件的输入和输出。除了标准的输入、输出文件外,其它的文件都必须先打开在使用,使用后必须关闭该文件。
- 文件指针
文件指针是一个指向文件有关信息的指针,这些信息包括文件名、状态和当前位置,他们保存在一个机构体变量中。在使用文件时需要在内存中为其分配空间,用来存放文件的基本信息。C语言中规定该结构体类型为FILE型。
文件指针的定义:
代码语言:javascript复制FILE *fp;//fp是一个指向FILE类型的指针变量
- 文件的打开
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】