在做pat basic 1009的时候遇到的问题。
当
#include <iostream>
#include <string>
using namespace std;
int main(){
string str[81],s;
int i=0;
while(cin.get()!='\n');{
cin>>s;
str[i++]=s;
}
i--;
for(i;i>0;i--) cout<<str[i]<<" ";
cout<<str[0];
return 0;
}
结果总是会把我输入的第一个字串的第一个字符吞掉;
比如输入
Hello World Here I Come
会输出
Come I Here World ello//Hello的H被吞掉
但是把while换成do {}while;的形式就不会吞,为什么?求解答,感激不尽!
cin.get()本来就要接收掉一个字符啊
while(cin.get()!='\n'); 这里多了个分号啊
你这是c的用法,c++一般用while(cin>>s){...}. cin自动滤除换行符。