cin,cin.get()和cin.getline()的区别
2007-06-20 21:23
295 查看
cin<<的结束符有enter space tab
cin.get()的结束符只有enter,但会把enter放入队列等待,遇到结束标志字符后,最后指针指向结束标志字符.
cin.getline()的结束符也只有enter,但不会把enter放入队列,指向结束标志符后一个字符;
比如:
#include<iostream>
using namespace std;
int main()
{
char ch[20];
cin>>ch;
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
return 0;
}
输入:i like c++./i study c++./i am happy.回车
输出结果为:
i
_like c++. //_表示空格
i study c++.
因此<C++程序设计>这本书中,就错了.
如果把第一个cin.getline改为cin.get,
结果为:
i
_like c++. //_表示空格
//这行为空
可以看到,第三行为空,因为使用cin.get以后,字符指针指向结束标志字符,当用cin.getline读取时,一开始就遇到结果标志符,因为第三行为空.
cin.get()的结束符只有enter,但会把enter放入队列等待,遇到结束标志字符后,最后指针指向结束标志字符.
cin.getline()的结束符也只有enter,但不会把enter放入队列,指向结束标志符后一个字符;
比如:
#include<iostream>
using namespace std;
int main()
{
char ch[20];
cin>>ch;
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
cin.getline(ch,20,'/');
cout<<ch<<endl;
return 0;
}
输入:i like c++./i study c++./i am happy.回车
输出结果为:
i
_like c++. //_表示空格
i study c++.
因此<C++程序设计>这本书中,就错了.
如果把第一个cin.getline改为cin.get,
结果为:
i
_like c++. //_表示空格
//这行为空
可以看到,第三行为空,因为使用cin.get以后,字符指针指向结束标志字符,当用cin.getline读取时,一开始就遇到结果标志符,因为第三行为空.
相关文章推荐
- cin.get( )与cin.getline( )的区别
- cin与cin.getline()的区别
- cin.get( )与cin.getline( )的区别
- cin、cin.get()、cin.getline()、gets()区别与用法
- C++ cin.get()和cin.getline()方法详解及区别
- getline(),cin.getline(),cin.get()区别
- cin,cin.get,cin.getline的区别
- cin cin.get cin.getline有什么区别?(转载加部分原创)
- C++ 读书笔记之 getline与cin.getline的区别
- cin.get()与cin.getline()的区别
- cin.get()与cin.getline()的区别
- cin.get()和cin.getline()之间的区别
- cin.get()和cin.getline()之间的区别
- cin.getline()、getline()、gets()、cin.get(),getchar()的区别
- cin.get( )与cin.getline( )的区别
- cin.get()和cin.getline()区别
- cin.get()与cin.getline()的区别
- cin、cin.get()和cin.getline()的用法和区别
- cin.get getline cin.getline 区别以及‘n’是否留在缓冲区中
- getline和cin.getline的区别!