关于C++中输入函数cin的一些总结
2017-01-25 21:45
387 查看
/*关于cin>>,cin.get(),cin.getline(),cin.clear()函数的总结*/
/*输入时总是先输入缓冲区,然后函数再去取*/
/*cin>>*/ char a[10]; char b[10]; cin>>a; cin>>b; cout<<a<<endl<<b<<endl; /*cin<<接受字符到缓冲区,遇到space,tab,enter终止,其值 保留在缓冲区。如果在输入a时包含以上字符,则会截断,剩下的留在缓冲区 被b读取,也就是说第二次输入无效,cin>>忽略前一次输入留下的所有
space,tab,enter,若是cin.getline(),则不忽略,当成输入提前结束。
/*cin.get()*/ char a = cin.get(); char b = cin.get(); cout<<(int)a<<endl; cout<<(int)b<<endl; /*从缓冲取一个字符,遇到space,tab,enter保留在缓冲区,若a=w,b=enter, 则第二次的enter同时也结束了输入*/
/*cin.get(char ch)*/ char a,b; cin.get(a); cin.get(b); cout<<int(a)<<endl<<int(b)<<endl; /*等价于a = cin.get()*/
/*cin.get(array_name, Arsize)*/ char a[20]; cin.get(a, 10); cout<<a<<endl; /*读取字符串,遇space,tab保留,遇enter结束输入, enter占一字符但不保留在缓冲区,因此实际存储Arsize个字符到 a数组,即若输出a数组,则第十个元素为空,即NULL.*/
/*cin.getline(array_name, Arsize)*/ char a[20]; cin.getline(a, 10); cout<<a<<endl; /*作用跟cin.get(array_name, Arsize)一样.但是,当输入字符超 出限制时,多余的字符不会保存在缓冲区,而前者多余的字符保留 在缓冲区可供下一次使用*/
/*cin.clear()*/ int a[10]; for(int i=0;i<10;i++) { cout<<"输入第"<<i+1<<"个数"<<endl; cin>>a[i]; if(!cin) { cout<<"输入有误!"; //cin.clear();//修复输入流 //cin.sync();//清除输入流,即缓冲区数据 } cout<<a[i]; } /*在输入数据的时候,常会碰到类型不正确导致的错误。如以上程序中 若输入字符a会导致错误,接下来会循环输出一个错误的数字,自己没有输入 的机会。因此先要修复输入流,然后再清空,才能进行下一次输入。 若只修复不清空,输出没有改善,因为错误的值仍然在缓冲区。反之亦然。 故两个应配合使用*/参考文章:《cin.clear()、cin.sync()和cin.ignor()的用法》点击打开链接
cin、cin.get()、getline()(讲解的很详细)黄刚的博客点击打开链接
c++中cin.clear()的用法点击打开链接
相关文章推荐
- 关于C++ 从命令行输入数据 常用输方法cin的一些理解总结
- 关于C++输入的一些总结
- C++中关于输入cin、gets、getline等的一些整理
- 关于c++的虚函数的一些总结
- c++中的各种输入操作符 cin,cin.get(),cin.getline()等函数用法总结
- 关于C语言可变参数函数的一些研究和总结
- C++中的类所占内存空间总结(其中有一段关于成员函数处于代码段的解释)
- C++的输入cin函数的相关用法1
- 关于一些c/c++小问题的总结
- 关于malloc函数和free函数的一些总结
- C++ 输入函数getline(cin,str) 与cin.getline(str,int)区别
- 关于C++的一些细节[五:函数-基础]
- 关于C++的一些总结
- c++中关于explicit的一些总结
- STL中流相关的输入输出符和get函数彻底总结:cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- 关于C++中的虚拟继承的一些总结
- C++ 输入函数 cin>>、cin.getline()和cin.get()区别
- C/C++拾遗录--关于位域的一些总结
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)