1.问题:使用geline的时候要注意前面上一行不能有数据
如果上一行有数据,那么cin会把数字读取走,而留下‘ ’
那么getline遇到它的结束符( )就不会读取
2.解决:使用
cin.ignore(numeric_limits<std::streamsize>::max(),’
’);//清除输入缓冲区的当前行
cin.ignore(numeric_limits<std::streamsize>::max()); //清除输入缓冲区里所有内容
cin.ignore()//清除一个字符
eg:
string s,s1,s2,s3,s4; cin>>s; cin.ignore(); //cin>>s1; 不能使用cin来读取因为含有空格 getline()能读取一行 //但是前面必须不能含有结束符 getline(cin,s1) ; for(int i=2;i<s1.size();i++) s+=s1[i]; cout<<s<<endl;