}
cin cin.get() cingetline()
其中cin是istream类的对象,cin 不能获取space 当按enter时 space以后的内容不会被输入,不释放enter;
cin.get()函数,能接受space(空间足够时候),不释放enter.
cin.getline()函数,能接受space(空间足够),获取完自己释放enter,若在该函数之前还有enter未被释放,则该函数就自动捕获到enter,计算机认为enter之前是空白符;输出,所以之后数据的就没有机会被输入。
int main()
{
char name[20];
//cin>>name;
cin.getline(name ,20);//自动释放换行符,捕获换行符
//若cin.get(name1,size);
// cin.get(name2,size) ;name2的内容不会被输入,get和cin不会释放enter cin 遇到space enter tab 结束
cout<<name<<endl;
return 0;
#include<iostream> #include<string> using namespace std;
int main()
{ string str; char charr[20]; cout << "length of string in charr before input :" <<strlen(charr)<<endl;//输出的字符长度比20大,遇到空字符停止 cout << "length of string in str before input :"<<str.size()<<endl;//对象未被初始化时候,不占内存 cout << "Enter a line of text:\n"; cin.getline(charr,20);//读取输入到数组中的字符,getline()是istream类的类方法 cout << "You enter :" <<charr <<endl; cout <<"Enter an anther line of test :\n"; //cin.getline(str,80);读取string类不能用cin getline(cin,str);//读取输入到输入到对象中的, cin是参数(表明去哪里找),没有大小,string类自行调整大小 cout << "You enter :"<<str <<endl; cout << "length of string in charr after input :" <<strlen(charr)<<endl; cout << "length of string in str after input :" <<str.size()<<endl; return 0; }