int main()
{
vector sentence;
while (cin.get()!='\n')
{
string s;
cin>>s;
sentence.push_back(s);
}
for (int i = sentence.size()-1; i >=0; i--)
{
if (i>0)
{
cout<<sentence[i]<<" ";
}
else
{
cout<<sentence[i]<<endl;
}
}
return 0;
}
代码如上 调试过程中发现 输入一个句子 例如 'you are a student'
输入到vector数组之后会变成 'ou are a student' 忽略了第一个元素的首字母,
即使第一个元素只有一个字母
例如 'I am a student' 也会变成'am a student'
想知道为什么会这样 谢谢大佬们解答!!!!
while (cin.get()!='\n') 这里的cin.get也会读取一个字符啊
cin.get()把第一个字符吃掉了。可以改成:
while(1)
{
string s;
cin >> s;
sentence.push_back(s);
if(cin.get()=='\n')
break;
}