C++学习笔记001-关于cin的几个用法
来源:互联网 发布:单片机lcd12864 编辑:程序博客网 时间:2024/06/04 17:39
1. cin>>
<span style="font-size:14px;">#include<iostream>using namespace std;int main(){char str[50],ch1;cout<<"Please input a string: ";cin>>str;ch1=getchar(); cout<<str<<" "<<(int)ch1<<endl;system("pause");return 0;}</span>
运行结果为:
由运行代码可以知道cin在向str输入时,遇到回车/空格等字符停止输入,这个回车/空格依然在缓冲区中,所以当getchar()获取字符时,得到了回车符(ASCII码打印出10)
当一开始输入的是(空格)(空格) abcde 时,这些空格都会被读取并丢弃,最终str打印出的是abcde,而ch1打印出的依然是回车符的ASCII值
2. cin.get()与cin.getline()
<span style="font-size:14px;">#include<iostream>using namespace std;int main(){char str[50],ch1;cout<<"Please input a string: ";cin>>str;ch1=cin.get(); //等价于cin.get(ch1); cout<<str<<" "<<(int)ch1<<endl;system("pause");return 0;}</span>
由上图可知,cin>>不能读取回车/空格符,但是cin.get()可以读取它们
另外cin.get()还可以读取字符串:
<span style="font-size:14px;">#include<iostream>using namespace std;int main(){char str[50],ch1;cout<<"Please input a string: ";cin.get(str,5);cin.get(ch1); //等价于ch1=cin.get();cout<<str<<" "<<(int)ch1<<endl;system("pause");return 0;}</span>
cin.get(str,5); 向str写入了4个字符,最后一个留给‘\0’,如果写入了超过4个字符,比如写入了abcde,再按回车,那么最终打印出来的还是abcd,而它下面的函数cin.get(ch1),得到的是字母e
注意到:输入abcd后按回车,程序直接打印出abcd 和回车的ASCII码,说明回车起到了结束输入的作用,但是这个回车符依然在缓冲区中,所以下次调用cin.get()时,会把回车符取出
另外:cin.get(str,5)也是可以读取空格符的,只是回车不能读
下图显示了cin.get()与cin.getline()的区别:
cin.getline(str,5);用法与cin.get(str,5);是一致的,但是,当输入abcd时,按下回车,并没有直接输出程序结果,而是我又输入了一个a后再按回车才打印出运行结果,说明:abcd按下回车,命令停止向str输入,但这个回车符并不像cin.get()那样仍然保留在缓冲区中,而是cin.getline()把它拿走并丢弃了,所以要再向缓冲区输入数据,如a。这就是get与getline的一个区别
此外,见下图:
当输入多于4个字符时,如输入了abcdfe 在cin.get(); 情况下,应当输出: abcd 102(f的ASCII码)
但是如图输出了-52,这是无意义的数字,说明当getline获得超出要求数目的字符后,后面的都会丢弃,变得无意义,不会留给接下来的调用。这就是cin.get()与cin.getline()第二个区别
- C++学习笔记001-关于cin的几个用法
- cin的几个基本用法
- C++学习笔记(一):关于cin与while的配合用法
- C++:cin、cin.getline()、getline()的用法
- C++:cin\cin.getline()\getline()的用法
- cin学习--------cin.get()和cin.getline(),cin.clear(),cin.sync()等的用法.
- C/C++学习笔记3 - cin深入分析(下) - cin的错误处理(原创)
- C++Primer学习笔记(一):cin与cin.get()
- C/C++中cin,cin.getline,getline的用法
- 关于C++中cin的一些用法
- 关于cin用法的一点心得
- [c++]C++学习笔记001.cout/cin
- 关于cin cin.getline cin.get getline gets getchar 的用法实例
- C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- cin用法介绍[C++]
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法(C++)
- C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))
- C++学习记录7--cin,cin.get(),cin.getline()的用法
- 后台定时任务的利器Hangfire
- 安装其他Myeclipse插件后,SVN失效
- 点击DataGridView里面的某一个单元格的事件
- msmtp邮件转发工具,推送报错统计
- 手把手教你编写一个具有基本功能的shell
- C++学习笔记001-关于cin的几个用法
- iOS开发---SQL语句大全
- MYSQl 时间类型(简单应用)
- Android绘图-Paint、Canvas、Bitmap、BitmapFactory
- android 性能优化二
- ios8下UISearchBar文字和图标重叠
- mongo数据库备份还原
- Oracle数据库合并行记录,【WMSYS.WM_CONCAT】 函數的用法 ----【行列转换】
- rac和单实例的dg创建