}
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;
}