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

湖南省网站建设项目如何模仿网站模板

湖南省网站建设项目,如何模仿网站模板,wordpress友情链接调用,唐山如何做百度的网站建设学习任务#xff1a; ⭐认识文件。⭐学习C语言中文件如何打开和关闭。⭐学习C语言中文件的读写方法#xff08;包括顺序读写和随机读写#xff09;。⭐学习C语言文件操作中如何判断文件读取结束。⭐简单了解FILE缓冲区。⭐认识流。⭐学习C的IO流#xff0c;包括标准IO流和文… 学习任务 ⭐认识文件。⭐学习C语言中文件如何打开和关闭。⭐学习C语言中文件的读写方法包括顺序读写和随机读写。⭐学习C语言文件操作中如何判断文件读取结束。⭐简单了解FILE缓冲区。⭐认识流。⭐学习C的IO流包括标准IO流和文件IO流即C的文件操作。⭐学习stringstream。 学习流程 先对C语言的文件操作进行学习然后带着建立在C语言文件操作的基础和C基础上学习CIO流。 1、认识文件 程序文件和数据文件 直接点 - 磁盘上的文件就是文件。从文件功能的角度上文件分有数据文件和程序文件。 程序文件包括源程序文件后缀为.c,目标文件windows环境后缀为.obj,可执行程windows环境后缀为.exe。 数据文件的文件的内容不一定是程序而是程序运行时读写的数据比如程序运行需要从中读取数据的文件或者输出内容的文件。 文件名 一个文件要有一个唯一的文件标识以便用户识别和引用。文件名包含3部分文件路径文件名主干文件后缀。 例如 c:\C_code\test.txt 2、文件的打开和关闭 2.1 文件指针 在C语言的文件操作中需要使用文件指针来对硬盘上的文件进行操作。每个被使用的文件都在内存中开辟了一个相应的文件信息区用来存放文件的相关信息如文件的名字文件状态及文件当前的位置等。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的取名为FILE。 以下是FILE结构体的成员变量不同编译器或许有不同的变量但是大同小异。除此之外FILE中会保存缓冲区、文件描述符等等。 //FILE struct _iobuf {char* _ptr;int _cnt;char* _base;int _flag;int _file;int _charbuf;int _bufsiz;char* _tmpfname; }; typedef struct _iobuf FILE; 每当打开一个文件的时候系统会根据文件的情况自动创建一个FILE结构的变量并填充其中的信息。 FILE* f;//文件指针变量 定义f是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区是一个结构体变量。通过该文件信息区中的信息就能够访问该文件即通过文件指针变量能够找到与它关联的文件就如上图一样f指向了文件信息区。 2.2 文件的打开与关闭操作 对一个文件进行读写操作之前先打开该文件操作完后需要关闭文件。在C语言中使用fopen打开文件使用fclose关闭文件。 //打开文件 FILE * fopen ( const char * filename, const char * mode ); 参数 filename需要打开的文件的名字路径默认在当前文件路径中 mode打开文件的方式 返回值返回一个文件指针//关闭文件 int fclose ( FILE * stream ); 参数文件指针即需要关闭的那个文件的文件指针 返回值成功返回0 文件的打开方式 文件使用方式含义如果指定文件不存在“r”只读为了输入数据打开一个已经存在的文本文件出错“w”只写为了输出数据打开一个文本文件建立一个新的文件“a”追加向文本文件尾添加数据建立一个新的文件“rb”只读为了输入数据打开一个二进制文件出错“wb”只写为了输出数据打开一个二进制文件建立一个新的文件“ab”追加向一个二进制文件尾添加数据出错“r”读写为了读和写打开一个文本文件出错“w”读写为了读和写建议一个新的文件建立一个新的文件“a”读写打开一个文件在文件尾进行读写建立一个新的文件“rb”读写为了读和写打开一个二进制文件出错“wb”读写为了读和写新建一个新的二进制文件建立一个新的文件“ab”读写打开一个二进制文件在文件尾进行读和写建立一个新的文件 代码演示 int main() {//打开文件FILE* pf fopen(test.txt, r);//只读方式打开if (pf NULL){printf(%s\n, strerror(errno));return 1;}//读文件操作//.....//关闭文件fclose(pf);pf NULL;return 0; } 3、文件的顺序读写 对于文件的顺序读写有以下函数需要学习去使用 功能函数名适用于字符输入函数fgetc所有输入流字符输出函数fputc所有输出流文本行输入函数fgets所有输入流文本行输出函数fputs所有输出流格式化输入函数fscanf所有输入流格式化输出函数fprintf所有输出流二进制输入fread文件二进制输出fwrite文件 3.1 代码演示 3.1.1 fgetc和fputc函数 fputc函数只写操作写字符进去文件中文件路径默认当前路径 int main() {//打开文件FILE* pf fopen(test.txt, w);//只写方式打开if (pf NULL){printf(%s\n, strerror(errno));return 1;}//写文件char i 0;for (i a; i z; i){fputc(i, pf);}//关闭文件fclose(pf);pf NULL;return 0; } fgetc函数只读操作 int main() {FILE* pf fopen(test.txt, r);if (pf NULL){printf(%s\n, strerror(errno));return 1;}//读文件int ch 0;while ((ch fgetc(pf)) ! EOF){printf(%c , ch);}//关闭文件fclose(pf);pf NULL;return 0; } 3.1.2 fgets和fputs函数 fputs函数只写操作 //写一行数据 int main() {FILE* pf fopen(test.txt, w);if (pf NULL){printf(%s\n, strerror(errno));return 1;}//写一行数据fputs(hello bit\n, pf);fputs(hello bit\n, pf);//关闭文件fclose(pf);pf NULL;return 0; } fgets函数只读操作 int main() {FILE* pf fopen(test.txt, r);if (pf NULL){//printf(%s\n, strerror(errno));perror(fopen);return 1;}//读一行数据char arr[20];fgets(arr, 20, pf);printf(%s\n, arr);//关闭文件fclose(pf);pf NULL;return 0; } 3.1.3 fsacnf和fprintf函数 fprintf函数只写操作 struct S {char arr[10];int age;float score; };int main() {struct S s { zhangsan, 25, 50.5f };FILE*pf fopen(test.txt, w);if (pf NULL){perror(fopen);return 1;}//fprintf(pf, %s %d %f, s.arr, s.age, s.score);fclose(pf);pf NULL;return 0; } fscanf函数只读操作 int main() {struct S s {0};FILE* pf fopen(test.txt, r);if (pf NULL){perror(fopen);return 1;}//将pf中的数据写到结构体对象s中fscanf(pf, %s %d %f, s.arr, (s.age), (s.score));//打印//printf(%s %d %f\n, s.arr, s.age, s.score);fprintf(stdout, %s %d %f\n, s.arr, s.age, s.score);fclose(pf);pf NULL;return 0; } 对于以上三对接口都适用于所有输入或输出流简单来说不仅仅适用于文件流的读写还可以是标准输入输出流使用方法就是将文件指针改成以下三种流的名字即可。 任何一个C程序只要运行起来就会默认打开3个流 FILE* stdin - 标准输入流键盘 FILE* stdout - 标准输出流屏幕 FILE* stderr - 标准错误流屏幕 3.1.4 fread和fwrite函数 fread和fwrite是以二进制的形式进行读写即保存在文件的数据是二进制的形式保存的。 fwrite函数二进制只写操作 struct S {char arr[10];int age;float score; };int main() {struct S s { zhangsan, 25, 50.5f };//以二进制的形式写到文件中FILE* pf fopen(test.txt, wb);if (pf NULL){perror(fopen);return 1;}//二进制的方式写fwrite(s, sizeof(struct S), 1, pf);fclose(pf);pf NULL;return 0; } fread函数二进制只读操作 int main() {struct S s { 0 };FILE* pf fopen(test.txt, rb);if (pf NULL){perror(fopen);return 1;}//二进制的方式读fread(s, sizeof(struct S), 1, pf);printf(%s %d %f\n, s.arr, s.age, s.score);fclose(pf);pf NULL;return 0; } 3.2 对比函数  对比以下函数 scanf/fscanf/sscanf   printf/fprintf/sprintf 从上面的示例代码中我们已经知道前两组的区别是 scanf是针对标准输入格式化输入语句 printf是针对标准输出格式化输出语句 fscanf是针对所有输入流的格式化输入语句 fprintf是针对所有输出流的格式化输出语句 而对于sscanf和sprintf sscanf是从字符串中读取格式化数据 sprintf是将格式化数据写入字符串 struct S {char arr[10];int age;float score; };int main() {struct S s { zhangsan, 20, 55.5f };struct S tmp { 0 };char buf[100] { 0 };//把s中的格式化数据转化成字符串放到buf中sprintf(buf, %s %d %f, s.arr, s.age, s.score);//zhangsan 20 55.500000;printf(字符串%s\n, buf);//从字符串buf中获取一个格式化的数据到tmp中sscanf(buf, %s %d %f, tmp.arr, (tmp.age), (tmp.score));printf(格式化%s %d %f\n, tmp.arr, tmp.age, tmp.score);return 0; } 这一对函数跟序列化与反序列化很相似。 文件的随机读写 文件的随机读写有三个函数提供服务fseek、ftell和rewind。 fseek函数: int fseek ( FILE * stream, long int offset, int origin ); 函数功能根据文件指针的位置和偏移量来定位文件指针。 参数 stream文件指针 offset偏移量 origin从文件指针的位置 origin参数 SEEK_SET文件的开头 SEEK_CUR文件指针当前位置 SEEK_END文件的末尾 #include stdio.h int main() {FILE* pFile;pFile fopen(example.txt, wb);fputs(This is an apple., pFile);fseek(pFile, 9, SEEK_SET);fputs( sam, pFile);fclose(pFile);return 0; } ftell函数 long int ftell ( FILE * stream ); 函数功能返回文件指针相对于起始位置的偏移量。rewind函数 void rewind ( FILE * stream ); 函数功能让文件指针的位置回到文件的起始位置。文本文件和二进制文件 根据数据的组织形式数据文件被称为文本文件或者二进制文件。 数据在内存中以二进制的形式存储如果不加转换的输出到外存就是二进制文件。 如果要求在外存上以ASCII码的形式存储则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 文件读取结束的判断 feof函数 feof函数用来判断文件读取结束的原因是什么是读取失败结束还是遇到文件尾结束。 1. 文本文件读取是否结束判断返回值是否为 EOF fgetc 或者 NULL fgets。 2. 二进制文件的读取结束判断判断返回值是否小于实际要读的个数。 文件缓冲区 ANSIC 标准采用“缓冲文件系统”处理的数据文件的所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区装满缓冲区后才一起送到磁盘上。如果从磁盘向计算机读入数据则从磁盘文件中读取数据输入到内存缓冲区充满缓冲区然后再从缓冲区逐个地将数据送到程序数据区程序变量等。缓冲区的大小根据C编译系统决定的。 CIO流  流是什么 “流”即是流动的意思是物质从一处向另一处流动的过程是对一种有序连续且具有方向性的数据 其单位可以是bit,byte,packet 的抽象描述。 C流是指信息从外部输入设备如键盘向计算机内部如内存输入和从内存向外部输出设备显示器输出的过程。这种输入输出的过程被形象的比喻为“流”。它的特性是有序连续、具有方向性。为了实现这种流动C定义了I/O标准类库这些每个类都称为流/流类用以完成某方面的功能。 C系统实现了一个庞大的类库其中ios为基类其他类都是直接或间接派生自ios类。 C标准IO流
http://www.ho-use.cn/article/10818522.html

相关文章:

  • 塘下春华网站建设专业网站建设品牌
  • 熊掌号网站改造绑定织梦网站网页设计与制作基础
  • 网站安全注意哪些问题吗装潢设计公司排名
  • 企业形象网站模板电商推广
  • 做盗版小说网站怎么样免费个人网站域名
  • 电商网站通用左侧弹出导航全国企业信用查询系统
  • 网站被惩罚徐州网站建设哪家好
  • 加快网站速度吗微信营销系统
  • 超星网站开发实战答案企业微站系统
  • 网站制作公司哪家好2017两学一做网站
  • 建设档案员证书查询网站谷歌竞价广告
  • 长春建网站公司免费大数据分析网站
  • 宁波网站建设熊掌号代运营公司的套路
  • 南宁网站建设业务员百度网盟推广合作网站
  • 高端企业网站建设公司群晖wordpress不成功
  • 找网络公司做的网站可以出售吗百度创建网站
  • 岳阳高端网站建设定制网站对公司有什么好处
  • 广东手机网站建设哪家好深圳网站建设最好
  • 学做土建资料员的网站别人做的网站域名到期怎么办
  • 为什么网站用静态页面深圳网站建设高端设计
  • 2024年3月新冠高峰seo优化广告
  • 运动器材网站建设wordpress数据库设置密码
  • 企业网站如何seo建立一个网站需要哪些
  • 上海展台设计巩义seo
  • 网站 防 恶意注册建设银行 商户网站打不开
  • 正规的佛山网站建设价格江苏网站建设系统方案
  • 做网站必须要服务器吗昆明抖音代运营公司
  • 石家庄网站建设今天改网名wordpress 慢的上天
  • 重庆汽车网站建设用c 做的网站怎么打开
  • 网站建设 总体思路南通营销网站制作