- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
两个C程序让你深刻理解getchar和putchar的应用
首先给出《The_C_Programming_Language》这本书中的例子:#include?stdio.hint?main(){????int?c;????c =?getchar();????while?(c?!=?EOF)????{??????????putchar(c);??????????c=?getchar();?????}????return?0;}这里主要解释下为什么要用int型来接受getchar函数。很多时候,我们会写这样的两行代码:char c;c = getchar();这样就很有可能出现问题。因为getchar函数除了返回终端输入的字符外,在遇到Ctrl+D(Linux下)即文件结束符EOF时,getchar ()的返回EOF,这个EOF在函数库里一般定义为-1。因此,在这种情况下,getchar函数返回一个负值,把一个负值赋给一个char型的变量是不正确的。?下面用一个题目来看其实如何获取字符和输出字符的。#include stdio.hmain(){????char c,d,e,f;????printf(please input two characters:\n);????c=getchar();????putchar(c);????putchar(\n);????d=getchar();????putchar(d);????putchar(\n);????e=getchar();????putchar(e);????putchar(\n);????f=getchar();????putchar(f);????putchar(\n);????printf(c= %c\n,c);????printf(d= %c\n,d);????printf(e= %c\n,e);????printf(f= %c\n,f);}运行后先输入“12”,回车,再输入“34”,回车。运行环境是redhat gcc运行结果:please input two characters:1212(这里空两行)343c=1d=2e=(这里空一行)f=3下面具体解释一下:getchar函数每次从缓冲区中得到一个字符,putchar函数每次输出一个字符。首先输入了两个字符12,然后回车,注意这时写入缓存中的有3个字符1,2,回车。程序中有四个getchar(),于是c=1,d=2,e=\n。这时运行到f=getchar();输入缓存中的三个字符均被前三个getchar获取,这时需要用户输入,这里输入了34于是f=3,4和后面的回车没有被利用。这便是整个流程。/* animals.c --使用switch语句*/#includestdio.h#includectype.hint main(void){char ch;printf(Give me a letter of the alphabet,and I will give );printf(an animal name\nbeginning with that letter.\n);printf(Please type in a letter: type # to end my act.\n);while((ch=getchar())!=#){if(\n==ch)continue;if(islower(ch))switch(ch){case a:printf(argail,a wild sheep of Asia\n);break;case b:printf(babirusa,a wild pig of Malay\n);break;case c:printf(coati,racoonlike mammal\n);break;case d:printf(desman,aquatic,molelike critter\n);break;case e:printf(echidna,the spiny\n);break;case f:printf(fisher,brownish marten\n);break;default:printf(Thats a stumper!\n);}elseprintf(I recognize only lowercase letters.\n);while(getchar()!=\n)continue;printf(Please type another letter or a #.\n);}printf(Bye!\n);return 0;}这个程序关键之处是:while(getchar()!=\n)continue;
您可能关注的文档
- HPLC_ELSD测定丹参提取物中单糖与二糖_牛涛.pdf
- HPLC与LC_MS_MS鉴定锁阳固精丸中非法添加西地那非衍生物.pdf
- HPLC法测定盐酸头孢他美酯中有关物质与聚合物_王建.pdf
- HPLC法测定达沙替尼含量和有关物质_黄玉.pdf
- HPLC法测定氟哌噻吨美利曲辛片含量和有关物质.pdf
- Hotelling模型拓展研究和博弈分析.pdf
- SVF7N65T(F)说明书_1.3-L.pdf
- HPLC波长转换法同时测定天麻头痛片中天麻素、欧前胡素、阿魏酸、胡薄荷酮与11-羰基-β-乙酰乳香酸含量.pdf
- HPLC测定不同来源竹叶中荭草苷、异荭草苷与异牡荆苷含量.pdf
- HPLC同时测定苦黄注射液中生物碱与大黄蒽醌类成分含量.pdf
最近下载
- 一种能有效减少热能损失的蓄热池.pdf VIP
- 胡蜂蜇伤诊疗规范培训课件.pptx VIP
- 北京课改版四年级数学上册全册知识清单.pdf VIP
- 城镇市容环境卫生劳动定额.docx VIP
- 小企业财务会计制度中小企业财务会计制度.pdf VIP
- 农业信息化与智慧农业.pptx VIP
- 2025河南空港数字城市开发建设有限公司第三批社会招聘20人笔试参考题库附答案解析.docx VIP
- 2018-2024年海峡杯数学竞赛真题及答案(三年级).pdf VIP
- 2024-2025新人教版初中数学七年级上册(全册)优秀ppt课件.pptx VIP
- 应征入伍服兵役高等学校学生国家教育资助申请表Ⅱ(退役生).doc VIP
文档评论(0)