C++ 中cin 输入流的多种函数用法.docx
- 文档编号:29396017
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:11
- 大小:19.48KB
C++ 中cin 输入流的多种函数用法.docx
《C++ 中cin 输入流的多种函数用法.docx》由会员分享,可在线阅读,更多相关《C++ 中cin 输入流的多种函数用法.docx(11页珍藏版)》请在冰豆网上搜索。
C++中cin输入流的多种函数用法
[语法]C++中cin输入流的多种函数用法
cin、cin.get()、cin.getline()、getline()、gets()函数的用法
1、cin>>
用法1:
最基本,也是最常用的用法,输入一个数字:
#include
usingnamespacestd;
main()
{
inta,b;
cin>>a>>b;
cout< } 输入: 2[回车]3[回车] 输出: 5 用法2: 接受一个字符串,遇“空格”、“TAB”、“回车”都结束 #include usingnamespacestd; main() { chara[20]; cin>>a; cout< } 输入: jkljkljkl 输出: jkljkljkl 输入: jkljkljkljkl //遇空格结束 输出: jkljkl 2、cin.get() 用法1: cin.get(字符变量名)可以用来接收字符 #include usingnamespacestd; main() { charch; ch=cin.get(); //或者cin.get(ch); cout< } 输入: jljkljkl 输出: j 用法2: cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格 #include usingnamespacestd; main() { chara[20]; cin.get(a,20); cout< } 输入: jkljkljkl 输出: jkljkljkl 输入: abcdeabcdeabcdeabcdeabcde(输入25个字符) 输出: abcdeabcdeabcdeabcd (接收19个字符+1个'\0') 用法3: cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足. 这个我还不知道怎么用,知道的前辈请赐教; 3、cin.getline() //接受一个字符串,可以接收空格并输出 #include usingnamespacestd; main() { charm[20]; cin.getline(m,5); cout< } 输入: jkljkljkl 输出: jklj 接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出; 如果把5改成20: 输入: jkljkljkl 输出: jkljkljkl 输入: jklffjlsjffjsdklf 输出: jklffjlsjffjsdklf //延伸: //cin.getline()实际上有三个参数,cin.getline(接受字符串的看哦那间m,接受个数5,结束字符) //当第三个参数省略时,系统默认为'\0' //如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk 当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法: #include #include usingnamespacestd; main() { charm[3][20]; for(inti=0;i<3;i++) { cout<<"\n请输入第"< "< cin.getline(m[i],20); } cout< for(intj=0;j<3;j++) cout<<"输出m["< "< } 请输入第1个字符串: kskr1 请输入第2个字符串: kskr2 请输入第3个字符串: kskr3 输出m[0]的值: kskr1 输出m[1]的值: kskr2 输出m[2]的值: kskr3 4、getline() //接受一个字符串,可以接收空格并输出,需包含“#include #include #include usingnamespacestd; voidmain(void) { stringst; cout<<"Inputst: "; getline(cin,st); cout< } 上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成getline(cin,st,'s');即使输入的是abcsabc那么也只会显示abc,因此对于上面出现的情况,有人说getline默认情况下以回车('\n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。 5、gets() //接受一个字符串,可以接收空格并输出,需包含“#include #include #include usingnamespacestd; main() { charm[20]; gets(m); //不能写成m=gets(); cout< } 输入: jkljkljkl 输出: jkljkljkl 输入: jkljkljkl 输出: jkljkljkl 类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面: #include #include usingnamespacestd; main() { charm[3][20]; for(inti=0;i<3;i++) { cout<<"\n请输入第"< "< gets(m[i]); } cout< for(intj=0;j<3;j++) cout<<"输出m["< "< } 请输入第1个字符串: kskr1 请输入第2个字符串: kskr2 请输入第3个字符串: kskr3 输出m[0]的值: kskr1 输出m[1]的值: kskr2 输出m[2]的值: kskr3 自我感觉gets()和cin.getline()的用法很类似,只不过cin.getline()多一个参数罢了; 这里顺带说明一下,对于本文中的这个kskr1,kskr2,kskr3的例子,对于cin>>也可以适用,原因是这里输入的没有空格,如果输入了空格,比如“kskrjkl[回车]”那么cin就会已经接收到3个字符串,“ks,kr,jkl”;再如“kskr1[回车]kskr2[回车]”,那么则接收“kskr,1,kskr”;这不是我们所要的结果! 而cin.getline()和gets()因为可以接收空格,所以不会产生这个错误; 6、getchar() //接受一个字符,需包含“#include #include #include usingnamespacestd; main() { charch; ch=getchar(); cout< } 输入: jkljkljkl 输出: j 3、Cin.ignore() Cin.ignore()方法cin.ignore(5,'c')的是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。 每抛弃一个字符,它都要计数和比较字符: 如果计数值达到5或者被抛弃的字符是'c',则cin.ignore()函数执行终止;否则,它继续等待。 它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。 比如可以这么用: cin.ignore(1024,'\n');通常把第一个参数设置得足够大,这样实际上总是只有第二个参数'\n'起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。 4、cin.sync() 清空输入缓冲区的内容 在输入规定的数目float型数据中错误输入一个string型,然而后提示输入错误,转重新输入,直到输入正确,可以执行下面的程序 复制内容到剪贴板 程序代码 intx; cin>>x; while(cin.fail()) { cin.clear(); cin.sync(); cout<<"XXXXX"< cin>>x; } 5、Cin.clear() Cin.clear()用法如果输入发生错误发生,那么流状态既被标记为错误,你必须清除这些错误状态,以使你的程序能正确适当地继续运行。 要清除错误状态,需使用clear()函数。 此函数带一个参数,它是你将要设为当前状态的标志值,只要将ios: : goodbit作为实参。 复制内容到剪贴板 程序代码 #include usingnamespacestd; voidmain() { inta; cout<<"输入一个字母: "< cin>>a; //int型变量中放了char型数据,failbit置1 cout<<"cin.fail()="< cout<<"输入一个数字: "< cin>>a; //故此处的输入无效 cout< cin.clear(); //此处用cin.clear()流标志复位 cout<<"cin.fail()="< cout<<"输入一个数字: "< //但刚才输入的字符并没有从流中清除,所以cin>>a又把那个字符放入a中,流输入流又不能正常工作 cin>>a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 中cin 输入流的多种函数用法 cin 输入 多种 函数 用法
![提示](https://static.bdocx.com/images/bang_tan.gif)