我写了一段程序, 但是程序不能记录空格, 不解,求大侠帮助
int main()
{ string b;
int num=0,num_shuru=0,c=1;
vector<string> a;
while(cin>>b)
{a.push_back(b); //输入
num_shuru++; //计数
}
cout<<"输入的是";
for(vector<int>::size_type ix=0;ix<=a.size()-1;ix++)
{
cout<<a[ix];
}
cout<<"一共"<<num_shuru<<endl;
if(a.size()==0)
{
cout<<"没有输入东西"<<endl;
return -1;
}
if(a.size()%2!=0)
{
cout<<"最后一个没法求职"<<endl;
c=2;
}
else
{
c=1;
}
for(vector<int>::size_type id=0;id<a.size();id++)
{
num++;
cout<<a[id];
if(num%6==0)
cout<<endl;
}
}
把 while(cin>>b) 改成 while(getline(cin,b)) 会存储空格,但是回车不存贮,
不明白为什么,请解释,谢谢了
[解决办法]
getline实现的是换行符为准的,读完一行会直接跳过换行符号读下一行
使用get()函数应该会记录空格和换行!
http://blog.sina.com.cn/s/blog_88feaf0b0100ynnn.html