istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);
有两种函数原型,下面是上面delim=‘\n’的一种特殊情况,delim是分隔符。读取到分隔符结束,并把分隔符从流中丢弃。有两种情况会停止读取,1是遇到分隔符,2是文件结束。
常见错误
我们有时候可能会遇到读不到东西,像下面这种,我们输入3然后回车程序直接结束了,而不是我们以为的会接着等待输入。理解这个问题,请你想象一条字符流,cin>>a将流中的整数取走了剩下了\n,getline发现了截止符,终止输入导致a为空。
string a;
int b;
cin>>b;
getline(cin,a);
cout<<a;