C语言fopen()函数:打开文件(附带实例)
在 C语言中,操作文件之前先要打开文件,其作用就是将程序和文件连接起来。可以把文件比作一本书,如果想要读写书的某个地方,则要先打开书,然后再进行读写。
C语言程序中打开文件所用的函数是 fopen(),fopen() 函数的语法如下:
因此,在此之前应该定义一个 FILE 类型指针,然后让该指针指向 fopen() 函数的返回值,便可打开文件,例如:
再看一个例子:
文件打开方式如下表所示。
【实例】创建一个文件并判断是否创建成功,然后打开该文件,再关闭该文件。代码如下:
假设当前目录没有文件名为 C_yuyan 的文件:
代码中的 exit(0) 语句起到终止程序的作用,如果文件打开失败,程序就会出错,这时候要终止程序的运行,该语句已在stdlib.h头文件中进行了声明和定义。
下面的语句实现了以只读的方式打开文件,具体代码如下:
fcolse() 函数的作用是关闭文件,文件读写完毕后要将文件关闭,避免造成文件数据丢失。fcolse() 函数的具体用法如下:
C语言程序中打开文件所用的函数是 fopen(),fopen() 函数的语法如下:
fopen(文件名/文件路径,打开文件的方式);fopen() 函数的返回值包括文件的路径、文件名、文件当前的读写位置等,返回值是一个 FILE 类型的结构体变量。
因此,在此之前应该定义一个 FILE 类型指针,然后让该指针指向 fopen() 函数的返回值,便可打开文件,例如:
FILE *fp=fopen("w.dat",'r'); //用只读的方式打开w.dat文件,w为文件名,r为文件的打开方式
再看一个例子:
FILE *fp=fopen("E//w.dat",'r'); //用只读的方式打开E盘下的w.dat文件
文件打开方式如下表所示。
打开方式 | 功能 | 如果文件已存在 | 如果文件不存在 |
---|---|---|---|
r | 打开一个文本文件,只能读取文件,不能写入文件 | 正常打开 | 系统出错 |
w | 打开一个文本文件,只能写入文件,不能读取文件 | 正常打开,删除原文件,创建新文件 | 创建新文件,文件从头写入 |
a | 打开一个文本文件,在文件后面追加新内容 | 正常打开,在原文件上追加新内容 | 创建新文件,文件从头写入 |
r+ | 打开一个文本文件,可以对文件进行读写操作 | 正常打开 | 系统出错 |
w+ | 打开一个文本文件,可以对文件进行读写操作 | 正常打开,删除原文件,创建新文件 | 创建新文件,文件从头写入 |
a+ | 打开一个文本文件,可以对文件进行读写操作 | 正常打开,文件接着原文件内容写入 | 创建新文件,文件从头写入 |
rb | 打开一个二进制文件,只能读取文件,不能写入文件 | 正常打开 | 系统出错 |
wb | 打开一个二进制文件,只能写入文件,不能读取文件 | 正常打开,删除原文件,创建新文件 | 创建新文件,文件从头写入 |
ab | 打开一个二进制文件,在文件后面追加新内容 | 正常打开,在原文件上追加新内容 | 创建新文件,文件从头写入 |
rb+ | 打开一个二进制文件,可以对文件进行读写操作 | 正常打开 | 系统出错 |
wb+ | 打开一个二进制文件,可以对文件进行读写操作 | 正常打开,删除原文件,创建新文件 | 创建新文件,文件从头写入 |
ab+ | 打开一个二进制文件,可以对文件进行读写操作 | 正常打开,在原文件上追加新内容 | 创建新文件,文件从头写入 |
【实例】创建一个文件并判断是否创建成功,然后打开该文件,再关闭该文件。代码如下:
#include <stdio.h> #include<stdlib.h> int main() { FILE *fp=NULL; char filename[25]; printf("请输入文件名: \n"); gets(filename); //获取文件名 if((fp=fopen(filename,"w"))==NULL) { printf("error: cannot open file!\n"); exit(0); } printf("文件创建成功!"); if((fp=fopen(filename,"r"))==NULL) //以只读方式打开 { printf("error: cannot open file!\n"); exit(0); } fclose(fp); return 0; }编译运行,结果如下:
请输入文件名:
E:\C_yuyan
文件创建成功!
假设当前目录没有文件名为 C_yuyan 的文件:
- 如果该程序第一次以只读的方式打开文件名为 C_yuyan 的文件,则 fopen() 函数的返回值为 NULL,程序会终止运行;
- 如果以只写的方式打开文件,则系统会自动创建一个文件名为 C_yuyan 的文件,如果创建失败则退出程序,否则执行 printf("文件创建成功!") 语句,再用只读的方式打开该文件,最后关闭该文件。
代码中的 exit(0) 语句起到终止程序的作用,如果文件打开失败,程序就会出错,这时候要终止程序的运行,该语句已在stdlib.h头文件中进行了声明和定义。
下面的语句实现了以只读的方式打开文件,具体代码如下:
if((fp=fopen(filename,"r"))==NULL) //以只读方式打开文件,判断文件是否存在 { printf("error: cannot open file!\n"); exit(0); //程序终止运行 }
fcolse() 函数的作用是关闭文件,文件读写完毕后要将文件关闭,避免造成文件数据丢失。fcolse() 函数的具体用法如下:
int fcolse(FILE *fp);fp 为文件指针,具体用法如下:
fcolse(fp);