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

企业网站托管外包方案wordpress排版教程

企业网站托管外包方案,wordpress排版教程,为何用wdcp建立网站连不上ftp,wordpress联盟插件前言#xff1a;在对于c语言的学习中#xff0c;我们为了持续使用一些数据#xff0c;为了让我们的数据可以在程序退出后仍然保存并且可以使用#xff0c;我们引入了文件的概念和操作#xff0c;本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧#x… 前言在对于c语言的学习中我们为了持续使用一些数据为了让我们的数据可以在程序退出后仍然保存并且可以使用我们引入了文件的概念和操作本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧以及分析它们之间的区别 目录 一.常用文件顺序读写函数 二.字符操作函数 fgetc 和 fputc fgetc fputc 三.文本行操作函数 fgets 和 fputs fgets fputs 四.格式化操作函数 fscanf 和 fprintf fscanf fprintf 五.二进制操作函数 fread fwrite 解密二进制文件 总结与分析 一.常用文件顺序读写函数 在这里我们先给出本次分享要讲解的函数的大致声明列举 功能 函数名 适用于 字符输入函数 fgetc 所有输入流 字符输出函数 fputc 所有输出流 文本行输入函数 fgets 所有输入流 文本行输出函数 fputs 所有输出流 格式化输入函数 fscanf 所有输入流 格式化输出函数 fprintf 所有输出流 二进制输入 fread 文件 二进制输出 fwrite 文件 二.字符操作函数 fgetc 和 fputc 我们还是给出 cplusplus 官网的讲解说明 fgetcfgetc - C Reference (cplusplus.com) fputcfputc - C Reference (cplusplus.com) fgetc 我们先来观察 fgetc 函数 官方文本显示如下 从流中获取字符返回指定流的内部文件位置指示符当前指向的字符。然后将内部文件位置指示符推进到下一个字符如果流在被调用时位于文件的末尾则该函数返回 EOF 并为流设置文件结束指示器(feof)如果发生读错误该函数返回EOF并设置流的错误指示器(error)Fgetc 和 getc 是等价的除了 getc 可以在某些库中作为宏实现 为了更加具体的理解我们写出一个文件 然后我们对其进行输入 在确保了我们的文件可以有内容读取后我们编程实现观察结果我们以读取的方式打开文件然后使用 ch 变量挨个读取文件中的字符并且打印 int main() {//打开文件FILE* pf fopen(data.txt, r);if (pf NULL){perror(fopen);return 1;}//读文件int ch fgetc(pf);printf(%c, ch);ch fgetc(pf);printf(%c, ch);ch fgetc(pf);printf(%c, ch);ch fgetc(pf);printf(%c, ch);ch fgetc(pf);printf(%c, ch);//关闭文件fclose(pf);pf NULL;return 0; } 然后我们可以发现确实可以读取到文件中的字符  综合上述操作我们可以得出结论fgetc 函数可以挨个读取文件中的字符我们可以定义一个变量来接收 fgets 的返回值字符的ASCII码然后进行输出等操作在使用该函数的时候我们只需要将文件指针流作为参数传给函数然后我们就可以得到一个字符的ASCII码 fputc 我们先来观察 fputc 函数 官方文本显示如下  将字符写入流将一个字符写入流并推进位置指示器字符被写入流的内部位置指示器所指示的位置然后自动向前移动一个 我们还是用代码示例来演示这样更方便我们理解 在演示前我们确保文件内是空白的 int main() {//打开文件FILE* pf fopen(data.txt, w);if (pf NULL){perror(fopen);return 1;}//写文件fputc(a, pf);fputc(b, pf);fputc(c, pf);fputc(d, pf);fputc(e, pf);//关闭文件fclose(pf);pf NULL;return 0; } 运行后 我们可以发现通过 fputc 函数挨个对文件输入了从 ‘a’ 到 ‘e’ 的字符  综合上述操作我们可以得出结论fputc 函数可以挨个字符的对文件进行写入的操作函数内部需要注意的有俩个参数 要写入的字符要写入文件的文件指针流 三.文本行操作函数 fgets 和 fputs 我们还是给出 cplusplus 官网的讲解说明 fgetsfgets - C Reference (cplusplus.com) fputsfputs - C Reference (cplusplus.com) fgets 我们先来观察 fgets 函数 官方文本显示如下 从流中获取字符串从流中读取字符并将其作为C字符串存储到 str 中直到读取 (num-1) 个字符或者到达换行符或文件结束符以先发生的为准换行符使 fgets 停止读取但它被函数认为是一个有效字符并包含在复制到 str 的字符串中。在复制到 str 的字符之后将自动追加一个终止 null 字符。请注意fgets 与 gets 有很大的不同fgets 不仅接受流参数而且允许指定 str 的最大长度并在字符串中包含任何结束换行符 我们还是用一段示例来理解首先有个 data.txt 的文件如下 我们给出代码如下 int main() {//打开文件FILE* pf fopen(data.txt, r);if (pf NULL){perror(fopen);return 1;}//读文件char arr[100] {0};fgets(arr, 100, pf);printf(%s, arr);fgets(arr, 100, pf);printf(%s, arr);//关闭文件fclose(pf);pf NULL;return 0; } 输出结果  根据输出结果我们可以发现一条 fgets 函数可以读取一行的内容但是在使用的时候需要注意设置一个字符数组来接收字符串函数在使用时一共有三个参数 要传入数组的地址要复制到字符串中的最大字符数文件指针流 fputs 我们先来观察 fputs 函数 官方文本显示如下 将字符串写入流将由 str 指向的C字符串写入流函数从指定的地址 (str) 开始复制直到到达结束的空字符 (\0)这个终止的空字符不会复制到流中注意fputs 与 puts 的不同之处不仅在于可以指定目标流而且 fputs 不会写入额外的字符而 puts 会自动在末尾附加一个换行符 我们还是用一段示例来理解首先还是设定一个空白内容的 data.txt 的文件 我们给出代码如下 int main() {//打开文件FILE* pf fopen(data.txt, w);if (pf NULL){perror(fopen);return 1;}//写文件char arr[] hello;fputs(arr, pf);fputs(world, pf);//关闭文件fclose(pf);pf NULL;return 0; } 运行结果 根据运行结果我们可以判断 fputs 函数一次性可以对文件写入一行字符串只要声明字符串的内容或者地址都可以进行写入它的俩个参数分别如下 要写入的字符串的内容或者地址要写入的文件指针流  四.格式化操作函数 fscanf 和 fprintf 我们还是给出 cplusplus 官网的讲解说明 fscanffscanf - C Reference (cplusplus.com) fprintffprintf - C Reference (cplusplus.com) fscanf 我们先来观察 fscanf 函数 官方文本显示如下 从流中读取格式化的数据从流中读取数据并根据参数格式将其存储到附加参数所指向的位置额外的参数应该指向已经分配的对象其类型由格式字符串中相应的格式说明符指定 我们还是用一段示例来理解首先有个 data.txt 的文件如下 我们给出相对于的代码如下 struct S {float f;char c;int n; };int main() {struct S s {0};//打开文件FILE* pf fopen(data.txt, r);if (pf NULL){perror(fopen);return 1;}//读文件fscanf(pf, %f-%c-%d, (s.f), (s.c), (s.n));printf(%f-%c-%d\n, s.f, s.c, s.n);//关闭文件fclose(pf);pf NULL;return 0; } 输出结果  根据输出结果我们可以发现原本文件中的字符串被我们以 float char int 的格式分别读到了 fcn 三个变量中也就是说我们将原本的字符串变成了不同格式的数据在使用这个函数时注意他的参数只比 scanf 多了一个参数也就是文件指针流 fprintf 我们先来观察 fprintf 函数 官方文本显示如下 将格式化的数据写入流将由 format 指向的 C字符串写入流。如果 format 包含格式说明符(以%开头的子序列)则格式化format 之后的其他参数并将其插入到结果字符串中以替换它们各自的说明符。在format 形参之后函数期望至少与format 指定的一样多的附加参数。 我们还是用一段示例来理解首先有个 data.txt 的空文件 我们给出代码如下 struct S {float f;char c;int n; };int main() {struct S s { 3.14f, w, 100 };//打开文件FILE* pf fopen(data.txt, w);if (pf NULL){perror(fopen);return 1;}//写文件fprintf(pf, %f-%c-%d, s.f, s.c, s.n);//关闭文件fclose(pf);pf NULL;return 0; } 运行结果 根据输出结果我们可以发现我们以结构体的格式将其中 float char int 三种类型的数据写入了文件在写入文件后这些数据就失去了原本的格式相当于变成了一条字符串在使用的时候他只比我们的 scanf 多了一个参数也就是文件指针流  五.二进制操作函数 我们还是给出 cplusplus 官网的讲解说明 freadfread - C Reference (cplusplus.com) fwritefwrite - C Reference (cplusplus.com) fread 我们先来观察 fread 函数 官方文本显示如下 从流中读取数据块从流中读取一个由 count 元素组成的数组每个元素的大小为 size 字节并将它们存储在 ptr 指定的内存块中流的位置指示器按读取的总字节数前进如果成功读取的总字节数为 (size*count)  该函数一共有 4 个参数 void * ptr指向大小至少为(size*count)字节的内存块的指针转换为 void* size_t size要读取的每个元素的大小(以字节为单位) size_t count元素的数目每个元素的大小为 size 字节 FILE * stream指向指定输入流的 FILE 对象的指针文件指针 为了方便理解我们还是用一段示例来理解首先有个 data.txt 的文件如下 然后给出代码如下 //二进制的方式读取文件 int main() {int arr[10] {0};//写文件FILE* pf fopen(data.txt, rb);if (pf NULL){perror(fopen);return 1;}//二进制的读文件fread(arr, sizeof(arr[0]), sizeof(arr) / sizeof(arr[0]), pf);int i 0;for (i 0; i 10; i){printf(%d , arr[i]);}//关闭文件fclose(pf);pf NULL;return 0; } 运行结果 我们发现和我们预期的完全不一样这是因为我们读取是以二进制的方式读取打印的时候却是以十进制的方式打印这样就相当于给数据加密了我们无法直观的看见我们读取了什么数据但是我们确确实实是读取到了         我们如何验证我们读到的数据就是我们想存储的那部分呢后文在介绍fwrite的时候笔者会给大家进行验证 fwrite 我们先来观察 fwrite 函数 官方文本显示如下 将数据块写入流将由 count 元素组成的数组 (每个元素的大小为 size 字节) 从 ptr 所指向的内存块写入流中的当前位置流的位置指示器按写入的总字节数前进在内部该函数将 ptr 指向的块解释为 unsigned char 类型的 (size*count) 元素数组并将它们顺序写入流就像对每个字节调用 fputc 一样 它也有四个参数如下 void * ptr指向大小至少为(size*count)字节的内存块的指针转换为 void* size_t size要写入的每个元素的大小(以字节为单位) size_t count元素的数目每个元素的大小为 size 字节 FILE * stream指向指定输入流的 FILE 对象的指针文件指针 为了方便理解我们还是用一段示例来理解首先有个 data.txt 的空文件 然后我们给出代码如下 //二进制的方式写进文件 int main() {int arr[] { 1,2,3,4,5,6,7,8,9,10 };//写文件FILE*pf fopen(data.txt, wb);if (pf NULL){perror(fopen);return 1;}//二进制的写文件fwrite(arr, sizeof(arr[0]), sizeof(arr)/sizeof(arr[0]), pf);//关闭文件fclose(pf);pf NULL;return 0; } 运行结果 同样我们还是无法直观的看见我们存储了什么这是因为记事本使用的是 UTF-8 码和我们保存的二进制并不兼容这从十进制转到二进制再用 UTF-8 码进行显示也就相当于对文本进行了一层加密         那如何验证数据的真实性呢我们可以使用刚才介绍的 fread 进行读取然后观察 解密二进制文件 这里生成的data.txt 的文件我们保持不动我们使用刚才介绍的 fread 来读取这个文件 //二进制的方式读取文件 int main() {int arr[10] {0};//写文件FILE* pf fopen(data.txt, rb);if (pf NULL){perror(fopen);return 1;}//二进制的读文件fread(arr, sizeof(arr[0]), sizeof(arr) / sizeof(arr[0]), pf);int i 0;for (i 0; i 10; i){printf(%d , arr[i]);}//关闭文件fclose(pf);pf NULL;return 0; } 运行结果 我们可以看见我们第一次用fwrite写入的从 1到10 的数组被我们成功的读取到了也就是说不管是 fread 还是fwrite         他们在对数据的写入和读出的时候麻豆不会影响数据的真实性他们只是相当于对数据进行了加密所以导致了我们无法直观的阅读数据 总结与分析 fgetc从文件中读取单个字符 fputc对文件写入单个字符 fgets从文件中读取一个字符串 fputs对文件写入一个字符串 fscanf将文件中的字符串转换为有格式的数据并且读取出来 fprintf将有格式的数据转换为字符串并且写入文件 fread将文件中的内容转换为二进制然后读取出来 fwrite将数据转换为二进制然后写入文件 本次的分享就到此为止了感谢您的支持如果您也不同的见解欢迎积极提出交流
http://www.dnsts.com.cn/news/46838.html

相关文章:

  • 国家电网网站开发图片素材wordpress云采集
  • 查销售数据的网站域名最新通知
  • 女的和男做那个视频网站个人网站免费搭建
  • 揭阳网站制作工具做电子商务网站 费用
  • 安徽区块链虚拟币网站开发方案服装设计自学软件
  • 做ppt常用的网站有哪些南通装饰网站建设
  • 同城可以做别人一样的门户网站吗北京市建设工程安全质量监督总站网站
  • 阳江新农村建设网站上海福州路附近做网站的公司
  • 网站策划与设计做网站App价格多少
  • 金华建站软件临沂市建设局的网站
  • 做二手车网站需要什么安顺市建设局网站
  • 网站开发asp 视频深圳专业做网站设计
  • 做婚恋网站要多少钱网站上搜索的动图怎么做壁纸
  • 网站上传好了如何做定向宁波网页设计多少钱
  • 学做电商的网站网站销售需要注册公司吗
  • 网站怎么做qq微信登陆网站建设动图代码
  • 养殖企业网站模板免费浏览器加速器
  • 装修企业网站源码商标查询入口
  • 如何制作手机网站有没有免费的广告平台
  • 销售网站快速建立免费永久个人网站注册
  • 微商城网站建设策划方案阳江网站seo公司
  • 栖霞网站设计wordpress发文章api
  • 设计师常用的素材网站网页设计版面划分
  • 外贸网站一站式服务网站开发 精品课程
  • 如何免费建立可以交流的网站wordpress随意更换主题
  • 合肥网站制作哪家强湖州网站建设企业
  • 多个域名绑定同一个网站兰州网站建设 冰雨
  • 中国建设银行积分查询网站镇江网站设计多少钱
  • 网站底部悬浮代码wordpress宁波seo教程
  • 深圳 网站制作需要多少钱 网络服务建设工程人员查询