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

河北建设网官方网站动漫设计课程

河北建设网官方网站,动漫设计课程,如何利用网站开发国外客户,一个单位网站被黑该怎么做本章重点#xff1a; 什么是文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定 1. 什么是文件 磁盘上的文件是文件。 但是在程序设计中#xff0c;我们一般谈的文件有两种#xff1a;程序文件、数据文件 1.1 程序文件…本章重点 什么是文件 文件名 文件类型 文件缓冲区 文件指针 文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定 1.  什么是文件 磁盘上的文件是文件。 但是在程序设计中我们一般谈的文件有两种程序文件、数据文件 1.1 程序文件 包括源程序文件后缀为.c,目标文件windows环境后缀为.obj,可执行程序windows环境后缀为.exe。 1.2 数据文件 文件的内容不一定是程序而是程序运行时读写的数据比如程序运行需要从中读取数据的文件或者输出内容的文件。 1.3 文件名 一个文件要有一个唯一的文件标识以便用户识别和引用。文件名包含3部分文件路径文件名主干文件后缀 例如 c:\code\test.txt 为了方便起见文件标识常被称为文件名。 2. 文件的打开和关闭 2.1 文件指针 缓冲文件系统中关键的概念是“文件类型指针”简称“文件指针”。 每个被使用的文件都在内存中开辟了一个相应的文件信息区用来存放文件的相关信息如文件的名字文件状态及文件当前的位置等。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的取名FILE. 例如,VS2008编译环境提供的 stdio.h头文件中有以下的文件类型申明 struct _iobuf {char *_ptr;int _cnt;char *_base;int _flag;int _file;int _charbuf;int _bufsiz;char *_tmpfname; }; typedef struct _iobuf FILE; 不同的C编译器的FILE类型包含的内容不完全相同但是大同小异。 每当打开一个文件的时候系统会根据文件的情况自动创建一个FILE结构的变量并填充其中的信息使用者不必关 心细节。 一般都是通过一个FILE的指针来维护这个FILE结构的变量这样使用起来更加方便。 下面我们可以创建一个FILE*的指针变量: FILE* pf;//文件指针变量 定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区是一个结构体变量。通过该文 件信息区中的信息就能够访问该文件。也就是说通过文件指针变量能够找到与它关联的文件。  2.2 文件的打开与关闭 int main() {//相对路径//绝对路径///Users/fan/Documents/c_study/c_test26/data.txt//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件//关闭文件fclose(pf);pf NULL;return 0; } 3. 文件的顺序读写 3.1 顺序读写函数介绍 int main() {//相对路径//绝对路径///Users/fan/Documents/c_study/c_test26/data.txt//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,w);if (pf NULL){perror(fopen);return 1;}//读文件//写文件// fputc(a,pf);// fputc(b,pf);// fputc(c,pf);int i 0;for (i 0; i 26; i){fputc(ai,pf);}//关闭文件fclose(pf);pf NULL;return 0; } int main() {//相对路径//绝对路径///Users/fan/Documents/c_study/c_test26/data.txt//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件int ch fgetc(pf);printf(%c\n,ch); //ach fgetc(pf);printf(%c\n,ch); //bch fgetc(pf);printf(%c\n,ch); //cch fgetc(pf);printf(%c\n,ch);//d//写文件// fputc(a,pf);// fputc(b,pf);// fputc(c,pf);// int i 0;// for (i 0; i 26; i)// {// fputc(ai,pf);// }//关闭文件fclose(pf);pf NULL;return 0; } int main() {//相对路径//绝对路径///Users/fan/Documents/c_study/c_test26/data.txt//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件// int ch fgetc(pf);// printf(%c\n,ch); //a// ch fgetc(pf);// printf(%c\n,ch); //b// ch fgetc(pf);// printf(%c\n,ch); //c// ch fgetc(pf);// printf(%c\n,ch);//d//写文件// fputc(a,pf);// fputc(b,pf);// fputc(c,pf);// int i 0;// for (i 0; i 26; i)// {// fputc(ai,pf);// }// fputs(hello fan\n,pf);// fputs(hello fanfan\n,pf);//读文件 - 读一行char arr[10] {0};fgets(arr,15,pf);printf(%s\n,arr);fgets(arr,15,pf);printf(%s\n,arr);//关闭文件fclose(pf);pf NULL;return 0; } struct S {int a;float s; };int main() {//相对路径//绝对路径///Users/fan/Documents/c_study/c_test26/data.txt//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//写文件//struct S s {100,3.14f};//fprintf(pf,%d %f,s.a,s.s);struct S s {0};fscanf(pf,%d %f,(s.a),(s.s));printf(%d %f,s.a,s.s);//关闭文件fclose(pf);pf NULL;return 0; } struct S {int a;float s;char str[10]; };int main() {struct S s {99, 6.18f, bit};//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,wb);if (pf NULL){perror(fopen);return 1;}//写文件fwrite(s,sizeof(struct S),1,pf);//关闭文件fclose(pf);pf NULL;return 0; } int main() {struct S s {0};//打开文件FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,rb);if (pf NULL){perror(fopen);return 1;}//读文件fread(s,sizeof(struct S),1,pf);printf(%d %f %s\n,s.a,s.s,s.str);//关闭文件fclose(pf);pf NULL;return 0; } 4. 文件的随机读写 4.1 fseek 根据文件指针的位置和偏移量来定位文件指针。 int fseek ( FILE * stream, long int offset, int origin ); int main() {FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件//定位文件指针到fint ch fgetc(pf);printf(%c\n,ch); //ach fgetc(pf);printf(%c\n,ch); //bch fgetc(pf);printf(%c\n,ch); //c ch fgetc(pf);printf(%c\n,ch); //dfseek(pf,-3,SEEK_END);ch fgetc(pf);printf(%c\n,ch);//关闭文件fclose(pf);pf NULL;return 0; } 4.2 ftell 返回文件指针相对于起始位置的偏移量 long int ftell ( FILE * stream ); int main() {FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件//定位文件指针到fint ch fgetc(pf);printf(%c\n,ch); //ach fgetc(pf);printf(%c\n,ch); //bch fgetc(pf);printf(%c\n,ch); //c ch fgetc(pf);printf(%c\n,ch); //d// fseek(pf,-3,SEEK_END);// ch fgetc(pf);// printf(%c\n,ch);int pos ftell(pf);printf(%d\n,pos); //4//关闭文件fclose(pf);pf NULL;return 0; } 4.3 rewind  让文件指针的位置回到文件的起始位置 void rewind ( FILE * stream ); int main() {FILE* pf fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pf NULL){perror(fopen);return 1;}//读文件//定位文件指针到fint ch fgetc(pf);printf(%c\n,ch); //ach fgetc(pf);printf(%c\n,ch); //bch fgetc(pf);printf(%c\n,ch); //c ch fgetc(pf);printf(%c\n,ch); //d// fseek(pf,-3,SEEK_END);// ch fgetc(pf);// printf(%c\n,ch);// int pos ftell(pf);// printf(%d\n,pos); //4rewind(pf); //回到起始位置ch fgetc(pf);printf(%c\n,ch); //a//关闭文件fclose(pf);pf NULL;return 0; } 5. 文本文件和二进制文件 6. 文件读取结束的判断   6.1 被错误使用的feof 牢记在文件读取过程中不能用feof函数的返回值直接用来判断文件的是否结束。 而是应用于当文件读取结束的时候判断是读取失败结束还是遇到文件尾结束。 1. 文本文件读取是否结束判断返回值是否为EOF fgetc或者NULLfgets 例如 fgetc判断是否为EOF. fgets判断返回值是否为NULL. 2. 二进制文件的读取结束判断判断返回值是否小于实际要读的个数。 例如 fread判断返回值是否小于实际要读的个数。 int main(void) {int c; // 注意int非char要求处理EOFFILE *fp fopen(test.txt, r);if (!fp){perror(File opening failed);return EXIT_FAILURE;}// fgetc 当读取失败的时候或者遇到文件结束的时候都会返回EOFwhile ((c fgetc(fp)) ! EOF) // 标准C I/O读取文件循环{putchar(c);}// 判断是什么原因结束的if (ferror(fp))puts(I/O error when reading);else if (feof(fp))puts(End of file reached successfully);fclose(fp); }//拷贝文件 //拷贝data.txt文件产生一个新文件data1.txtint main() {FILE* pfRead fopen(/Users/fan/Documents/c_study/c_test26/data.txt,r);if (pfRead NULL){perror(open file for read);return 1;}FILE* pfWrite fopen(/Users/fan/Documents/c_study/c_test26/data2.txt,w);if (pfWrite NULL){perror(open file for write);fclose(pfRead);pfRead NULL;return 1;}//读写文件int ch 0;while((ch fgetc(pfRead)) ! EOF){fputc(ch,pfWrite);}//关闭文件fclose(pfRead);pfRead NULL;fclose(pfWrite);pfWrite NULL;return 0; } 7. 文件缓冲区
http://www.pierceye.com/news/951947/

相关文章:

  • 上海网站seo诊断吉林网站优化
  • 玉田网站建设做重视频网站
  • 发放淘宝优惠券的网站怎么做网站建设理论依据
  • 信用渭南网站建设做网站实例
  • 南通做百度网站的公司哪家好公司网站建站流程
  • 北京微信网站建设费用知识问答网站开发
  • 网站建设的博客做外国网用哪些网站
  • 网站两侧广告口碑营销的案例及分析
  • 有什么手机网站wordpress 编辑器增加翻译按钮
  • 深圳网站建设企怎样做好公司网站
  • 深圳注册投资公司的条件网络优化推广公司
  • 网站流量统计工具有哪些电子商务网络营销是什么
  • asp+access网站开发实例精讲网站建设开发的主要流程
  • 电子商城开发网站建设做网站推广怎么跟客户沟通
  • 个人网站排名欣赏哪个网站可以做笔译兼职
  • 创建一个网站主页wordpress英文博客主题
  • 天津建站模板搭建电子商务网页设计与网站建设论文
  • 网站空间可以自己做服务器网站环境搭建教程
  • 建一个网站素材哪里来长安城乡建设开发有限公司网站
  • 网站内容由什么组成部分组成微信静首页制作代码
  • 精品课程网站开发平台福建省建设厅网站 保证金
  • 网站后台 不能删除文章贵州建设厅网站首页
  • 重庆市园林建设有限公司网站酒店平台网站建设
  • c 网站开发实例教程超级外链工具 增加外链中
  • ip怎么做网站外贸网站建设哪里好
  • 市网站建设网站排名查询alexa
  • 西安建设网站首页网络互联网推广
  • 百度搜索网站显示图片wordpress 工作室
  • 网站页面模板 建设中集团做网站优势
  • 提供佛山网站制作大连市建设工程集团有限公司