c语言中的文件

来源:互联网 发布:freeswitch java 编辑:程序博客网 时间:2024/06/15 07:21

用计算机程序解决实际问题时,在待处理豁得出结果的数据量较大情况下,一般采用读写外部存储介质(如光盘,磁盘,u盘)中的数据。数据一般是以文件组织的形式存储。因此,读写数据就是读写外存中的文件数据。

文件的定义:

相关数据的集合。计算机中的程序数据,文档通常都组织成文件存放在外存储器中,由于输入输出设备具有字节流特征,所以操作系统也罢他们看作文件。

缓冲文件系统;

系统在主存中开辟的,用来临时存放输入输出数据的区域,称为输入输出缓冲区(简称缓冲区)。例如,现将输入的信息送到缓冲区,然后从韩冲去取出数据。

文件的打开与关闭;

文件在读写之前应该“打开”,在使用结束之后应该及时“关闭”。

1.文件的打开

fopen ()是ANSI C 标准函数库stdio.h中声明的函数,用于打开文件,其原型为:

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

该函数的功能是:一mode制定的方式打开由filename指定的文件。若打开成功,则返回一个与所指文件相关联的字节流文件指针,用于后续的文件操作。若打开出错,则返回一个空指针(NULL)

例如:

FILE *fp=fopen("f.txt","r");

表示函数fopen以“r"(只读)方式打开名为f.tet的文件,并将返回的指向f.tet文件的字节流文件指针赋给fp。这样fp就对文件f.tet相关联,然后就可以通过fp对f.txt进行操作。

说明:

(1)用filename 表示要打开的文件名时,文件名前面可以带盘符和路径。例如:

         FILE *fp=fopen("c:\\my\\f.txt","r");

(2)打开指定文件后,对指定文件操作前,应该先判断指定文件是否被打开。例如:

         FILE *fp=fopen("c:\\my\\f.txt","r");

         if(fp==NULL)

         {

               printf("Cannot open this file!\n");

               exit 1;                                         //关闭所有文件,终止程序执行;

           }

2.文件的关闭:

在指定文件使用结束后及时关闭,以使文件指针与文件”脱钩“,释放它所占有的系统资源,防止文件丢失数据或被误用。关闭文件使用fclose函数;

fclose 是ANSI C 标注库函数stdio.h中声明的函数,其原型为:

int close(FILE *p);

它的功能是关闭与文件指针fp关联的文件,调用成功返回0,否则,返回EOF(-1)。

3.文本文件的读写:

例如:将一行字符逐个写入文件cx.txt:

#include <stdio.h>int main() {FILE *fp;                          // 定义文件指针char ch;if((fp=fopen("cx.txt","w"))==NULL){    printf("cannot open this file\n");exit (0);} ch = getchar();while(ch != '\n'){fputc(ch, fp);ch =getchar();}fclose(fp);printf("\n");return 0;}

编写程序实现一个文本文件中的数据复制到另一个文本文件中:
#include <stdio.h>#include <stdlib.h>int main(){FILE *in;FILE *out;char infile[256];char outfile[256];char c;printf("源文件名?");scanf("%s",outfile);printf("目标文件名?");scanf("%s",outfile);if((in = fopen(infile, "r"))==NULL){    printf("无法打开输入文件%s\n",infile);exit (1);} if((out = fopen(outfile, "r"))==NULL){    printf("无法打开输入文件%s\n",outfile);exit (1);} c = fgetc(in);while(c != EOF){fputc(c, out);c =fgetc(in);}fclose(in);fclose(out);return 0; }

                                                                                      文件打开方式
r:                                         开一个文本文件只读
w:                                       打开一个文本文件只写
a:                                        对一个文本文件添加
rb:                                      打开一个二进制文件只读
wb                                     打开一个二进制文件只写
ab:                                     对一个二进制文件添加
r+:                                      打开一个文本文件读/写
w+:                                    生成一个文本文件读/写
a+:                                     打开一个文本文件读/写
rb+:                                   打开二进制文件读/写
wb+:                                  生成二进制文件读/写
ab+:                                  打开二进制文件读/写

0 0