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

大企业官网设计seo优化关键词挖掘

大企业官网设计,seo优化关键词挖掘,深圳平台公司,淘宝网店----------------------------------------------------| 问题描述一#xff1a;#xff08;分析scanf()和getchar()读取字符#xff09; |-------------------------------------------------- scanf(), getchar()等都是标准输入函数#xff0c;一般人都会觉得这几个函数…----------------------------------------------------| 问题描述一分析scanf()和getchar()读取字符   |-------------------------------------------------- scanf(), getchar()等都是标准输入函数一般人都会觉得这几个函数非常简单没什么特殊的。但是有时候却就是因为使用这些函数除了问题却找不出其中的原因。下面先看一个很简单的程序 程序1 [cpp] view plaincopy int main()   {          char ch1, ch2;          scanf(%c, ch1);           scanf(%c, ch2);          printf(%d  %d\n, ch1, ch2);          return 0;   }   程序2 [cpp] view plaincopy int main()   {          char ch1, ch2;          ch1  getchar();          ch2  getchar();          printf(%d  %d\n, ch1, ch2);          return 0;   }   程序的本意很简单就是从键盘读入两个字符然后打印出这两个字符的ASCII码值。可是执行程序后会发现除了问题当从键盘输入一个字符后就打印出了 结果根本就没有输入第二个字符程序就结束了。例如用户输入字符a, 打印结果是9710。这是为什么呢 【分析】     首先我们呢看一下输入操作的原理 程序的输入都建有一个缓冲区即输入缓冲区。一次输入过程是这样的当一次键盘输入结束时会将输入的数据存入输入缓冲区而cin函数直接从输入缓冲区中 取数据。正因为cin函数是直接从缓冲区取数据的所以有时候当缓冲区中有残留数据时cin函数会直接取得这些残留数据而不会请求键盘输入这就是例子 中为什么会出现输入语句失效的原因     其实这里的10恰好是回车符这是因为scanf()和getchar()函数是从输入流缓冲区中读取值的而并非从键盘(也就是终端)缓冲区读取。而读 取时遇到回车(\n)而结束的这个\n会一起读入输入流缓冲区的所以第一次接受输入时取走字符后会留下字符\n这样第二次的读入函数直接从缓冲区中 把\n取走了显然读取成功了所以不会再从终端读取这就是为什么这个程序只执行了一次输入操作就结束的原因 ---------------------------------------------------- |  问题描述二分析scanf()和gets()读取字符串   | ---------------------------------------------------- 首先我们看一下scanf()读取字符串的问题 程序3 [cpp] view plaincopy int main()   {          char str1[20], str2[20];          scanf(%s,str1);           printf(%s\n,str1);              scanf(%s,str2);            printf(%s\n,str2);            return 0;   }   程序的功能是读入一个字符串输出在读入一个字符串输出。可我们会发现输入的字符串中不能出现空格例如 测试一输入 Hello world! 输出 Hello world! 【分 析】到此程序执行完毕不会执行第二次的读取操作这个问题的原因跟问题一类似第一次输入Hello world!后字符串Hello world!都会被读到输入缓冲区中而scanf()函数取数据是遇到回车、空格、TAB就会停止也就是第一个scanf()会取出Hello 而world!还在缓冲区中这样第二个scanf会直接取出这些数据而不会等待从终端输入。 测试二 Hello[Enter]  Hello[输出] world[Enter] world[输出] 【分析】程序执行了两次从键盘读入字符串说明第一次输入结束时的回车符被丢弃即scanf()读取字符串会舍弃最后的回车符 我们再看一下gets()读取字符串的情况 用scanf来读取一个字符串时字符串中是不可以出现空格的一旦出现空格后面的数据就会舍弃残留在缓冲区中。其实有另外一个函数是可以接受空格的那就是gets()下面我们看一下这个函数的应用我们把程序3改动一下 [cpp] view plaincopy int main()   {          char str1[20], str2[20];          gets(str1);           printf(%s\n,str1);              gets(str2);            printf(%s\n,str2);            return 0;   }   【分析】显然与上一个程序的执行情况不同这次程序执行了两次从键盘的读入而且第一个字符串取了Hello world! 接受了空格符而没有像上一个程序那样分成了两个字符串所以如果要读入一个带空格符的字符串时因该用gets(), 而不宜用scanf()! -------------------------------------------------------- | 问题描述三getchar()暂停程序查看程序执行结果| --------------------------------------------------------     不知道大家有没有遇到过这样的问题有的编译器程序执行完后的结果界面不会停下而是一闪就没了以至于看不到执行结果。所以很多人在程序最后加上 getchar()语句目的是想让程序执行完后停下来等待从终端接收一个字符再结束程序。可是发现有时候这样根本没用程序照样跳出去了。这是为什么 呢 【分析】原因跟上面例子讲的一样是因为输入缓冲区中还有数据所以getchar()会成果读到数据所以就跳出了 ------------------ |   【总结】   | ------------------ 第一要注意不同的函数是否接受空格符、是否舍弃最后的回车符的问题! 读取字符时 scanf()以Space、Enter、Tab结束一次输入不会舍弃最后的回车符即回车符会残留在缓冲区中 getchar()以Enter结束输入也不会舍弃最后的回车符 读取字符串时 scanf()以Space、Enter、Tab结束一次输入 gets()以Enter结束输入空格不结束接受空格会舍弃最后的回车符 第二为了避免出现上述问题必须要清空缓冲区的残留数据可以用以下的方法解决 方法1C语言里提供了函数清空缓冲区只要在读数据之前先清空缓冲区就没问题了        这个函数是fflush(stdin)。 方法2自己取出缓冲区里的残留数据。 说实话这个语句我也没看懂呵呵为什么格式控制是这样的希望高手指点一下        scanf(%[^\n],string);
http://www.huolong8.cn/news/312333/

相关文章:

  • 安徽平台网站建设公司盐城市网站建设公司
  • 做课件需要的纯音乐网站桂林两江四湖夜游
  • 湖南建设信息网站仙居住房和城乡建设部网站
  • 网站服务器类型wordpress计次查询
  • 广州市手机网站建设平台零基础学广告设计
  • 网站平台建设服务合同发布
  • 福州福清网站建设c 做网站设计
  • 现代企业管理培训课程高淳seo外包公司
  • 博客用来做微网站网站推广的方法和技巧
  • 中国做机床的公司网站西安的推广公司
  • 大型网站开发基本流程做电影网站用什么服务器
  • 做网站一年多少钱wordpress增加h5网页
  • 苏州网站建设搭建商务网站建设实训过程
  • 怎么样通过做网站赚钱吗linux做网站服务器吗
  • 二级学院网站建设及利用情况杭州网络网站建设
  • 做网站除了域名还要买什么湖南营销型网站建设团队
  • 网站建设 策划方案贵州网站建设营销公司哪家好
  • 芯片公司网站建设开发安卓app
  • 靖江做网站哪家好wordpress后台地址
  • 杭州最大的网站开发黄页网络的推广网站有哪些好
  • 深圳建设交易信息网站坪山做网站
  • 自己做自己的私人网站织梦如何生成网站地图
  • 网站建设服务哪家好增城网站建设服务
  • 前端开源项目网站广告公司网站(附falsh及源代码)
  • 岛国萝莉做的电影网站涉县网站设计
  • 南京网站设计建设编程教程免费视频
  • 多个图表统计的网站怎么做品牌建设营销
  • 域名备案与网站不一致企业查询系统
  • 建站工具免费阿里云网站空间
  • 太原seo招聘长春seo排名收费