回顾C语言文件里的知识

《回顾文件里的知识》

今天,梁哥给我们列好了苏嵌第一阶段学习规划,感觉开心中略带一点压力,开心理所当然,有了目标,有了既定的方向,就剩下一步一个脚印扎实地走下去,这是实在应该感到开心的。重点在于那一点压力。压力来源梁哥的一句话:等我给你们讲C语言,你们会发现你们以前学的C语言就和没学过一样。哈哈,我想无论谁听了这句话都会感到有压力吧。有压力才会有动力嘛,好,废话少说,我开始我今天的主题,“C语言的文件”总结。

         这篇总结来自梁哥学习计划的最后一个模块的一部分:文件和数据库,数据库我先不提,但是我想很多人都知道“大数据”这个名词,如今的时代是大数据的时代,“数据库”和“大数据”的联系之密切,我想是不言而喻的,而我们的梁哥又将文件与数据库放在一起组成了一个学习模块:“文件与数据库”,可见“C语言的文件”是多么的重要,想起以前老师用了半节课讲完了文件这一章的内容,顿时感到很是慌张,于是今日我准备再回首,将以前不理解或是理解的不够透彻的关于文件的知识从新整理起来,构成这一片CSDN博客,我称其为:“回顾文件里的知识”。

         谭浩强《C程序设计(第三版)》在第13章也就是倒数第二章开始对文件进行吹牛掰。一开始牛掰是这样吹的:文件(file)是程序中一个重要的概念。所谓“文件”一般指存储在外部介质上的数据集合。一批数据是以文件的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识),才能向它输出数据。

         最讨厌磨磨唧唧的人生,简单粗暴,列出老谭给我们的所有文件函数:

fp = fopen(“xxx”,”使用方式”);

fclose(fp);

fputc(ch,fp);

ch = fgetc(fp);

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

fpritf(fp,”格式字符”,输出列表);

fscanf(fp,”格式字符”,输入列表);

rewind(fp);

fseek(fp,位移量,起始点);

ftell();

ferror(fp);

clearer();

         我发现,要想灵活运用这些函数,必须对这些函数足够熟悉,然而这些死气沉沉的理论死记硬背起来难度似乎要胜于英语单词,那么我们就必须对这些函数进行反复练习。

         文件使用方式:(读:将文件里的内容读出;写:向文件里写入内容)

文件使用方式

含义

“r”(只读)

为将文件里的内容调用打开一个文本文件

“w”(只写)

为向文件里写入内容打开一个文本文件

“a”(追加)

向已经存在的文本文件里添加数据

“rb”(只读)

为将文件里的内容调用打开一个二进制文件

“wb”(只写)

为向文件写如数据打开一个二进制文件

“ab”(追加)

向二进制文件尾添加数据

“r+”(读写)

为读写打开一个文本文件

“w+”(读写)

为读写新建一个文本文件

“a+”(读写)

为读写打开一个文本文件

“rb+”(读写)

为读写打开一个二进制文件

“wb+”(读写)

为读写新建一个二进制文件

“ab+”(读写)

为读写打开一个二进制文件

批判性阅读:此处老谭对文件的输入输出讲解的不是很简单粗暴,一开始让我感到相当抽象,我想形象的描述文件的输入输出用对文件的读写表示再好不过了。

         文件在C语言中的本质:C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据组成的不同,可分为ACSII文件和二进制文件。ASCII文件即文本(TEXT)文件,它的每一个字节放一个ASCII代码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。例如整数10000,在内存中只占2个字节,如果按ASCII码形式输出,则占5个字节,而按二进制形式输出,在磁盘上只占2个字节。

文件指针:FILE

具体如下:

typedef struct

{

         shortlevel;/*缓冲区“满”或“空”的程度*/

         unsignedflags;/*文件状态标志*/

         charfd;/*文件描述符*/

         unsignedchar hold;/*如无缓冲区不读取字符*/

         shortbsize;/*缓冲区的大小*/

unsigned char*buffer;/*数据缓冲区的位置*/

unsigned ar*curp;/*指针,当前的指向*/

unsigned istemp;/*临时文件,指示器*/

short token;/*用于有效性检查*/

}FILE;

         各个函数的具体应用:

1、  文件的打开关闭函数:

#include<stdio.h>

int main(void)

{

           FILE *fp;

           fp = fopen(“E:\\cfile\\a.out”,”w+”);

           fclose(fp);

         return 0;

}

2、  文件的读写:(字符读写)

#include<stdio.h>

int main(void)

{

           FILE *fp;

           char ch;

           fp = fopen(“E:\\cfile\\a.out”,”w+”);

           fputc(‘m’,fp);

           ch = fgetc(fp);

fclose(fp);

           return 0;

}

3、  fread函数和fwrite函数(此处还需加强练习,对于这两个函数的理解不够深入)

#include<stdio.h>

int main(void)

{

           FILE *fp;

           int a[5],i;

           fp = fopen(“E:\\cfile\\a.out”,”w+”);

         for(i = 0;i < 5;i ++)

           {

                    fwrite(&a[i],1,1,fp);

}

           fclose(fp);

           return 0;

}

4、  fprintf和fscanf函数

#include<stdio.h>

int main(void)

{

                   FILE*fp;

                   inti = 5,j;

float t = 3.14,s;

                   fp= fopen(“E:\\cfile\\a.out”,”w+”);

                   fprintf(fp,”%d,%f”,i,t);

                   fscanf(fp,”%d,%f”,&j,&s);

                   fclose(fp);

                  return 0;

}

时间紧张,有待补充,后续继续完善!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值