当前位置: 首页 > news >正文

网站功能模块建设网站策划方案

网站功能模块建设,网站策划方案,免费 网站源码,收录优美图片目录 前言 文件的概述 文件类型 如何用C语言来操作文件呢#xff1f; 文件缓冲区 文件的打开与关闭 文件的打开——fopen#xff08;#xff09;函数 文件的关闭——fclose#xff08;#xff09;函数 文件结束检测——feof()函数 文件的顺序读写 文件字符输出函…目录 前言 文件的概述 文件类型 如何用C语言来操作文件呢 文件缓冲区 文件的打开与关闭 文件的打开——fopen函数 文件的关闭——fclose函数 文件结束检测——feof()函数 文件的顺序读写 文件字符输出函数——fputc() 文件字符输入函数——fgetc() 文件字符串输出函数——fputs() 文件字符串输入函数——fgets() 格式化输出——fprintf() 格式化输入——fscanf() 文件的随机读写 取文件位置指针的当前值——ftenll()函数 移动文件位置指针——fseek()函数 置文件指针于文件的开头——rewind()函数 综合应用——将一个文件的内容拷贝到另一个文件 总结 前言 计算机的内存中运行的程序和数据在关机后会自动消失。我们可以看看下面这种情况 我们可以看到我们给a赋值一个3然后再屏幕上打印出它的值但是当我们关闭这个程序时在下一次打开程序时它还会提醒我们输入一个值但这次的值就不一定是3了它没有保存下来。所以说我们就需要学习文件的相关知识将我们写的程序内容能够保存下来。操作系统提供了对数据进行统一组织和管理的功能就是以“文件”的形式把数据储存在计算机的存储介质上。 文件的概述 一个文件是由一系列彼此有一定联系的数据集合构成的。就像是我们把社会上的一个个家庭作为社会的基本组成单位一样也可以把家庭中的每一个成员看作是一个数据并且通常以户主名来标识不同的家庭。同样为了区分不同类型的数据构成的不同文件我们给每一个文件取一个名字就是文件名我们在使用电脑的时候肯定发现过一些 带有 . exe或者 . c等等的文件后缀名这就是对文件进行了一个简单的分类比如我们写C语言的时候我们写的源文件通常都会放在同一个相同的文件夹中这样方便我们日后查找修改等操作。  文件类型         C语言中文件按其储存数据的格式可分为文本文件和二进制文件。那么文本文件和二进制文件有什么不同呢。         首先从概念上讲文本文件中的数据都是以单个字符的形式进行存放的每个字节储存的是一个字符的ASCII码值把一批彼此相关的数据以字符的形式存放在一起构成的文件就是文本文件也叫ASCII码文件。而二进制文件中的数据顾名思义就是以二进制的方式储存的。数据在内存中就是以二进制的方式储存的也就是说数据原本在内存中是什么样子的在二进制文本中就是什么样子的。         我们举个例子来看看两个文件的明显区别。就拿一个整数12345来说在文本文件中就是以字符‘1’ ‘2’ ‘3’ ‘4’ ‘5’的方式来储存的每个字节都是放的他们的ASCII码值所以5个字符就占据5个字节的空间而对于二进制储存来说12345就是一个整形变量是一个int4个字节的大小。我们画图来表示一下。 在文本文件中的储存形式 0011000100110010001100110011010000110101 在二进制文件中的储存形式 0011000000111001 综上文本文件和二进制文件有以下区别 1.由于储存的数据不同所以在进行读写操作时文本文件是以字节为单位进行写入或读出的而二进制文件则以变量结构体等数据块为单位进行读写。 2.一般来讲文本文件用于储存文字信息一般由可显示字符构成如说明性文档C语言的源程序文件等都是文本文件二进制文件用于储存非文本数据。 具体应用时应根据我们自身的需要来选择。 如何用C语言来操作文件呢         在C语言中所有对文件的操作都是通过文件指针来完成的。我们已经学习过指针了变量的指针指向该变量的储存空间但文件的指针不是指向一段内存空间而是指向关于该文件的一个结构体该结构体定义在stdio.h中。         声明一个文件指针的语法格式如下 FILE* 文件指针名 注意FILE 必须全是大写字母另外一定要包含stdio.h的头文件 文件缓冲区 文件缓冲区可以理解成用来积累数据的当数据积累到一定量的时候然后再进行读取数据当该缓冲区的数据被读完时将再从输入文件中输入一批新的数据放进去。这里我们就了解一下这个缓冲区就行。 文件的打开与关闭 文件的打开——fopen函数         在C语言中打开文件就是把程序中要读写的文件与磁盘上实际的数据文件联系起来让文件指针指向该文件用于进行相应的操作。C语言中输入/输出函数库中定义的打开文件的函数是fopen函数。其使用格式如下 FILE *fp ; //首先声明一个文件指针 fpfopen(文件名,打开方式)  //根据打开方式的不同对文件的操作就不同。 如果文件打开成功fopen函数则返回一个FILE型的指针若打开失败则返回一个空指针。所以当我们打开文件的时候需要判断文件是否打开成功了。可以用一个if语句来判断。         注意fopen的两个参数都需要用双引号括起来 有关的打开方式及其含义都在上面图中可以参考。 提示只读方式表示只对文件读取内容不能进行写的操作只写表示对文件只能进行写入操作不能进行读的操作追加表示在文件末尾进行添加数据的操作读写操作表示既可以读内容也可以写内容而建立新文件表示如果原文件存在则覆盖原文件。         不管是对文件进行任何操作都需要判断文件是否被打开。所以在进行打开文件的操作的时候都要检查操作是否成功。通常像这样检查 FILE* fp fopen(abc.txt, r); if (fp NULL) {perror(fp);exit(1); }我们可以使用一个if语句来判断。打开成功则再进行一系列的读写操作打开失败则跳出程序。 文件的关闭——fclose函数         我们既然把文件打开了则肯定需要文件关闭意思就是将我们打开文件的指针给收回。我们只需要调用一下fclose即可。         fclose(fp)  //fp就是我们上面打开过的指针。 技巧因为保持一个文件的打开状态需要占用内存空间所以对文件的操作一般遵循“晚打开早关闭”的原则避免浪费。 文件结束检测——feof()函数 该函数是用于检测文件是否结束既适用于二进制文件也适用于文本文件。其使用格式如下。        feof(fp);        //fp是文件指针是已经打开文件的指针 作用测试文件指针fp是否指向文件的尾部。若已经读到尾部则返回0否则返回0 在进行读的操作的时候需要检测是否读到文件尾部就可以使用while!feof(fp))循环语句来控制对文件内容的读取。如果不是文件尾部则括号里的值为1继续读取并循环直到文件的末尾结束。 例如 while (!feof(fp)) {c getc(fp); //从文件中读取一个字符赋给c } 文件的顺序读写 我们已经将文件的基本内容文件的打开关闭等操作讲完了现在我们就开始读写文件了并练习使用一些关于操作文件的读写函数。         文件的顺序读写常用的函数如下。        字符输入/输出函数fgetc(),fputc()        字符串输入/输出函数: fgets(),fputs()         格式化输入/输出函数:fscanf(),fprintf(         数据块输入/输出函数:fread(),fwrite() 以上函数都包含在头文件stdio.h中因此在调用以上函数时要包含头文件。 在进行文件读写时我们需要创建文件。          我们通过上面的操作打开一个文件并给它取名为“data.txt.txt”,打开完后我们可以把他也显示在VS中现在我们可以开始写的操作了。 文件字符输出函数——fputc() int main() { //我们先打开文件FILE*fp fopen(data.txt.txt, w);//判断是否为空指针是空指针提前退出if (fp NULL){perror(fp);return 0;}//定义一个字符变量char tmp a;//将该变量写入到文件中fputc(tmp, fp);//关闭文件fclose(fp);//将fp变为空避免变为野指针fp NULL;return 0; } 当我们看到终端什么都没显示时表示已经写入成功我们点入“data.txt.txt”中发现已经写入成功。 这个时候我们再将该字符拿出来。 文件字符输入函数——fgetc() 我们有时候分不清fgetc和fputc两个的区别就看它们的形参就行了fgetc形参要少一个fputc的形参要多一个它需要加上我们要输入到文件的字符而fgetc只需要从文件中拿一个字符出来就只有指针变量。接下来我们用fgetc从文件中再把这个字符拿出来。 int main() { //我们先打开文件FILE*fp fopen(data.txt.txt, r);//判断是否为空指针是空指针提前退出if (fp NULL){perror(fp);return 0;}//定义一个字符变量char tmp;//将该变量写入到文件中tmpfgetc(fp);printf(%c, tmp);//关闭文件fclose(fp);//将fp变为空避免变为野指针fp NULL;retu 在代码上我们的打开文件的方式已经改变改为了r读的方式一定要注意当我们在代码中想要打印字符tmp,可以看到还是那个字符。当然我们也可以连续的读取。我们只需要写一个循环即可。 文件字符串输出函数——fputs() fputs是将一个存放在内存变量中的字符串写到文本文件中使用格式如下 fputs(字符串文件指针 下面我们还是上代码。 int main() {//我们先打开文件FILE* fp fopen(data.txt.txt, w);//判断是否为空指针是空指针提前退出if (fp NULL){perror(fp);return 0;}char arr[] { man whta can i say mamba out };fputs(arr, fp);fclose(fp);fp NULL;return 0; } 可以看到文件中就是我们想输入进去的代码。我们要时刻注意打开文件的方式在我写这个代码的时候就忘了改方式第一次就没有写入成功。 好下面我们再尝试从改文件将这个字符串拿出来。 文件字符串输入函数——fgets() fgets()函数是从文本中读取一个字符串保存在变量中。使用格式如下 fgets(字符串指针读取字符个数n文件指针); 当我们使用的时候要注明我们要读取字符的个数但是它只会读取n-1个因为字符串最后一个字符必须是‘\0’系统会默认给末尾加上‘\0’所以说我们读取的时候总比我们想要读取的少一个。 int main() {//我们先打开文件FILE* fp fopen(data.txt.txt, r);//判断是否为空指针是空指针提前退出if (fp NULL){perror(fp);return 0;}char arr[50];fgets(arr,20, fp);fclose(fp);printf(%s\n, arr);fp NULL;return 0; } 当满足下列调钱之一时读取过程结束。 1.已读取了n-1个字符。 2.当前读取的字符是回车符。 3.已读到文件末尾。 格式化输出——fprintf()         有的时候我们对要输入/输出的数据有一定的格式要求如整形字符型或按指定的宽度输出数据等。这里要介绍的格式化输入/输出指的是不仅输入/输出数据还要指定输入/输出数据的格式它比前面介绍字符/字符串输入/输出函数的功能更加强大。 fprintf()与前面我们学过的printf()函数相似只是将输出的内容放在一个指定的文件中。使用格式如下fprinf(文件指针格式串输出列表)执行成功时返回输入的字节数否则返回一个负数。 int main() {//我们先打开文件FILE* fp fopen(data.txt.txt, w);//判断是否为空指针是空指针提前退出if (fp NULL){perror(fp);return 0;}char tmp[] hello world;fprintf(fp, %s, tmp);fclose(fp);fp NULL;return 0; } 同样的是写入成功了。 当然我们如果像要读取文件的话也是同样的操作。 格式化输入——fscanf() fscanf()函数与scanf函数的使用方法差不多只需要加入一个指针就行了使用格式如下 fscanf(文件指针格式串输入列表 这里我们就不使用代码演示了大家可以自己试一下和前面的方法都差不多。         关于二进制的读写这里就不说了我们相对用得比较少。 文件的随机读写         相对于前面介绍的顺序访问文件方式文件的随机访问是给定文件当前读写位置的一种读写文件方式也就是允许对文件进行跳跃式的读写操作。         要定位文件的当前读写位置这里要提到一个文件位置指针的概念。所谓文件位置指针就是值当前读或写的数据在文件中的位置在实际使用中是由文件指针充当的。当进行文件读操作时总是从文件位置指针开始读其后的数据然后位置指针到尚未读的数据之前当进行写操作时总是从文件指针开始去写然后移到刚写入的数据之后。下面我们介绍文件位置指针的定位函数。 取文件位置指针的当前值——ftenll()函数 ftell函数用于获取当前文件指针距离文件开始的位置。返回文件指针相对于文件开头的位移量单位是字节。调用失败则返回-1。 移动文件位置指针——fseek()函数 fseek()函数用来移动文件指针到指定位置上然后从该指针位置进行读写操作从而实现对文件的随机读写功能。使用格式如下 fseek(fp,offset,from) 其中fp是文件指针offset是文件位置指针的位移量是一个long型的数据。若位移量为正则前进位移量为负则反向移动。from是起始点用以指定位移是以哪个位置为基准的。 上表给出了代表起始点的符号常量和数字及其含义在fseek函数中使用时两者是等价的。 例如 fseek(fp,100L,0);        //从文件开头向后移动100个字节 fseek(fp,50L,1);        //从文件指针当前位置向后移动50个字节 fseek(fp,-30,2);        //从文件结尾向前移动30个字节 置文件指针于文件的开头——rewind()函数 rewind()函数用于将文件指针的位置置于文件的开头。其形式如下 rewind(fp) 综合应用——将一个文件的内容拷贝到另一个文件 我们已经学习了上面的关于文件操作的函数了下面我们就用他们来解决一下上面这个问题。将文件内容拷贝到另一个文件。 #define _CRT_SECURE_NO_WARNINGS #include stdio.h int main() { char arr[256];int ch0;//以读的形式打开文件并将他赋给指针sorceFILE* sorce fopen(data.txt.txt, r);//判断该指针if (sorce NULL){perror(sorce);}//以写的形式打开文件我们要向里面写入数据FILE* dest fopen(ffff.txt, w);//判断该指针if (dest NULL){perror(dest);}//我们先从sorce中读取256个字符到数组arr中fgets(arr,256, sorce);//我们再从将得到的字符串写入dest中fputs(arr, dest);//最后关闭两个文件fclose(sorce);fclose(dest);sorce NULL;destNULL;return 0; } 我们可以看到开始的时候两个文件中的内容是不相同的 当我们运行了程序之后两个文件中的内容都相同了其实我们也可以用fprintf和fscanf函数来完成上面这些操作只不过我们这里用的是fputs和fgets。其实当你练习时可以尝试用用其他两个函数。 本书很多内容都参考了书籍《C语言从入门到精通》的文件部分内容。 总结 以上就是关于文件的一些函数知识的讲解和应用希望对大家的C语言学习有所帮助码了3个多小时希望大家能够点赞关注收藏起来以后再看看感谢大家的观看
http://www.pierceye.com/news/531571/

相关文章:

  • 宜州网站建设服务网页生成长图 iphone
  • 网站关键词seo费用广告设计教学大纲
  • 网站开发视频 百度云自己做网站卖东西
  • 二级网站建设费用品牌广告投放
  • 西宁做网站君博认同门户网站建设实施方案
  • 外贸公司做网站该去哪里找萝岗手机网站建设
  • 网站建设的商业目的惠州网站建设培训
  • 一个网站备案多个域名吗中国建设工程信息网官网入口
  • 广告网站设计哪家快做网站一般注册哪几类商标
  • 学网站建设有前途吗网站对话窗口怎么做
  • 云南昆明做网站wordpress备份文件
  • 连云港市网站建设汕头制作手机网站
  • 印度做网站wordpress 锁定地址
  • 做网站的服务器带宽一般多少游戏开发培训机构
  • 网站设计制作培训微信开放平台文档
  • 私人申请建设网站多少钱html如何建网站
  • 网站怎么在微博推广石家庄模板建站平台
  • 贵阳网站开发方舟网络wordpress静态化链接
  • 如何建设一个公司网站英文网站建设多少钱
  • 国外做水广告网站大全app开发公司查询
  • 苏州商城网站制作免费下载ppt模板的网站有哪些
  • 北京智能网站建设企业wordpress 找源码
  • 无锡网站维护公司wordpress 目录排序
  • 自己搭建的ftp怎么做网站装修公司展厅效果图
  • 做网站手机验证收费吗百度竞价推广是什么工作
  • 电商网站 案例熊掌号怎么域名做网站
  • 做网站怎么改关键词安卓开发软件工具
  • 做SEO公司多给网站wordpress 固定链接 无法访问
  • 潍坊百度网站优化网站建设相关文章
  • 做学术研究的网站怎样建设个人游戏网站