




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、语法C+中cin输入流的多种函数用法cin、cin.get()、cin.getline()、getline()、gets()函数的用法1、cin用法1:最基本,也是最常用的用法,输入一个数字:#includeusingnamespacestd;main()inta,b;cinab;couta+bendl;输入:2回车3回车输出:5用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束#includeusingnamespacestd;main()chara20;cina;coutaendl;输入:jkljkljkl输出:jkljkljkl输入:jkljkljkljkl/遇空格结束输出:
2、jkljkl2、cin.get()用法1:cin.get(字符变量名)能够用来接收字符#includeusingnamespacestd;main()charch;ch=cin.get();/或许cin.get(ch);coutchendl;输入:jljkljkl输出:j用法2:cin.get(字符数组名,接收字符数量)用来接收一行字符串,能够接收空格#includeusingnamespacestd;main()chara20;cin.get(a,20);coutaendl;输入:jkljkljkl输出:jkljkljkl输入:abcdeabcdeabcdeabcdeabcde(输入25个字
3、符)输出:abcdeabcdeabcdeabcd(接收19个字符+1个0)用法3:cin.get(无参数)没有参数主若是用于舍弃输入流中的不需要的字符,或许舍弃回车,填补cin.get(字符数组名,接收字符数量)的不足.这个我还不知道怎么用,知道的长辈请见教;3、cin.getline()/接受一个字符串,能够接收空格并输出#includeusingnamespacestd;main()charm20;cin.getline(m,5);coutmendl;输入:jkljkljkl输出:jklj接受5个字符到m中,此中最后一个为0,所以只看到4个字符输出;假如把5改成20:输入:jkljkljk
4、l输出:jkljkljkl输入:jklffjlsjffjsdklf输出:jklffjlsjffjsdklf延长:/cin.getline()实质上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符)/当第三个参数省略时,系统默以为0/假如将例子中cin.getline()改为cin.getline(m,5,a);当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk当用在多维数组中的时候,也能够用cin.getline(mi,20)之类的用法:#include#includeusingnamespacestd;main()charm320;f
5、or(inti=0;i3;i+)coutn请输入第i+1个字符串:endl;cin.getline(mi,20);coutendl;for(intj=0;j3;j+)cout输出mj的值:mjendl;请输入第1个字符串:kskr1请输入第2个字符串:kskr2请输入第3个字符串:kskr3输出m0的值:kskr1输出m1的值:kskr2输出m2的值:kskr34、getline()/接受一个字符串,能够接收空格并输出,需包含“#include”#include#includeusingnamespacestd;voidmain(void)stringst;coutInputst:;getli
6、ne(cin,st);coutstendl;上边这段代码,假如输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline碰到这个结束符时,就不在接受输入了,比方写成getline(cin,st,s);即便输入的是abcsabc那么也只会显示abc,所以关于上边出现的状况,有人说getline默认状况下以回车(n)作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。5、gets()/接受一个字符串,能够接收空格并输出,需包含“#include”#include#includeusingnamespac
7、estd;main()charm20;gets(m);/不可以写成m=gets();coutmendl;输入:jkljkljkl输出:jkljkljkl输入:jkljkljkl输出:jkljkljkl近似cin.getline()里面的一个例子,gets()相同能够用在多维数组里面:#include#includeusingnamespacestd;main()charm320;for(inti=0;i3;i+)coutn请输入第i+1个字符串:endl;gets(mi);coutendl;for(intj=0;j3;j+)cout输出mj的值:mj也能够合用,原由是这里输入的没有空格,假如输
8、入了空格,比方“kskrjkl回车”那么cin就会已经接收到3个字符串,“ks,kr,jkl;再”如“kskr1回车kskr2回车”,那么则接收“kskr,1,kskr;这”不是我们所要的结果!而cin.getline()和gets()因为能够接收空格,所以不会产生这个错误;6、getchar()/接受一个字符,需包含“#include”#include#includeusingnamespacestd;main()charch;ch=getchar();coutchx;while(cin.fail()cin.clear();cin.sync();coutXXXXXx;5、Cin.clear(
9、)Cin.clear()用法假如输入发生错误发生,那么流状态既被标记为错误,你一定除去这些错误状态,以使你的程序能正确适合地持续运转。要除去错误状态,需使用clear()函数。此函数带一个参数,它是你将要设为目前状态的标记值,只需将ios:goodbit作为实参。复制容到剪贴板程序代码#includeusingnamespacestd;voidmain()inta;cout输入一个字母:a;/int型变量中放了char型数据,failbit置1coutcin.fail()=cin.fail()endl;/输出1cout输入一个数字:a;/故此处的输入无效coutaendl;/输出不确立值cin
10、.clear();/此处用cin.clear()流标记复位coutcin.fail()=cin.fail()endl;/此处failbit已为0cout输入一个数字:a又把那个字符放入a中,流输入流又不可以正常工作cina;coutaendl;/输出不确立值coutcin.fail()=cin.fail()endl;/在此处failbit又为1cin.clear();/再次修复输入流cin.ignore();/取走方才流中的字符cout输入一个数字:a;couta=aendl;此刻再看一下输入流的failbitcoutcin.fail()=cin.fail()endl;/输出0,表示输入流已恢
11、复正常6、cin.rdstate()这些目前的状态信息被包含在io_state种类的对象中。io_state是一个列举种类(就像open_mode相同),以下即是它包含的值。goodbit无错误Eofbit已抵达文件尾failbit非致命的输入/输犯错误,可挽回badbit致命的输入/输犯错误,没法挽回有两种方法能够获取输入/输出的状态信息。一种方法是经过调用rdstate()函数,它将返回目前状态的错误标记。比如,若是没有任何错误,则rdstate()会返回goodbit.下例示例,表示出了rdstate()的用法:复制容到剪贴板程序代码#includeusingnamespacestd;i
12、ntmain()inta;cina;coutcin.rdstate()endl;if(cin.rdstate()=ios:goodbit)cout输入数据的种类正确,无错误!endl;if(cin.rdstate()=ios_base:failbit)cout输入数据种类错误,非致命错误,可除去输入缓冲区挽回!endl;system(pause);另一种方法例是使用下边任何一个函数来检测相应的输入/输出状态:boolbad();booleof();boolfail();boolgood();下例示例,表示出了上边各成员函数的用法:复制容到剪贴板程序代码#includeusingnamespacestd;intmain()inta;cina;coutcin.rdstate()endl;if(cin.good()cout输入数据的种类正确,无错误!endl;if(cin.fail()cout输入数据种类错误,非致命错误,可除去输入缓冲区挽回!endl;system(pause);cin.peek()将下一字节作为int值返回但不移出它我试了个例子#includeusingnamespacestd;intmain(void)charc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合资企业合同范本
- saas代理合同范本
- 南山铝业合同范本
- 专业阀体采购合同范本
- 单位购柴油合同范例
- 和孩子签合同范本
- 包装礼盒合同范本
- 合同范例法院起诉
- 农村木炭出售合同范本
- 变更购房合同范本
- 2025云南昆明空港投资开发集团招聘7人历年高频重点模拟试卷提升(共500题附带答案详解)
- 征信异议申请书
- 高中不同主题阅读理解高频词汇清单-2025届高三下学期英语一轮复习专项
- 2025年上半年高邮市国资产投资运营限公司(国企业)公开招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 教师命题培训
- 2025年高考地理二轮复习:地球运动(讲义)解析版
- 2024年金华金开招商招才服务集团有限公司招聘笔试真题
- 【地理】亚洲的自然环境第3课时 2024-2025学年七年级地理下册同步课件(人教版2024)
- 2024年江苏护理职业学院高职单招语文历年参考题库含答案解析
- 《国别和区域研究专题》教学大纲
- 2025年日历表含农历(2025年12个月日历-每月一张A4可打印)
评论
0/150
提交评论