#include<iostream> #include<string> using namespace std; int main() { string s; int i=10; while(cin>>s) {getline(cin,s); cout<<s<<endl; i--;} return 0; }
加了这个while循环之后,输出就有问题了,比如输入Y = 3(中间都有空格),输出的结果是 = 3,前面的字母Y就没有了,这是怎么回事呢?
已经被cin>>s 读取了空格前面的字符。
再弄个变量来接收:
string s;
string temp; int i=10; while(cin>>temp) {getline(cin,s);
s=temp+s; cout<<s<<endl; i--;}
谢谢!!解决了!
但是还是没太明白原因。。。能再讲详细一点吗?多谢多谢!
@响O(∩_∩)O:
cin>>s 也是接收输入流中的字符串,遇到空白字符就结束了(仅把Y取走了),所以后面就取不到Y啦。
@向往-SONG: 哦,明白了~~非常感谢您的耐心讲解!