for(int i=0;i<n;i++)
{
string sen;
cin.clear();
cin.sync();
cin.ignore();
getline(cin,sen);
cout<<" \n sen -> "<<sen<<endl;
}
这是我的代码。
问题:当不添加cin.ignore()
时,getline(cin,sen)
跳过第一个输入,但是在添加cin.ignore()
之后,在第一个输入之后,它会丢失每个输入的第一个字符。
我在堆栈溢出中查看了很多帖子,但是没有找到解决方案。
输入:
<tag1 value = "HelloWorld">
<tag2 name = "Name1">
</tag2>
</tag1>
当前代码的输出:
sen -> <tag1 value = "HelloWorld">
sen -> tag2 name = "Name1">
sen -> /tag2>
sen -> /tag1>