使用getline的注意事项

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;

  

无聊就学习 反正没事干
原文地址:https://www.cnblogs.com/miao-xixixi/p/13725382.html