如果未添加cin.ignore,getline(cin,str)会跳过第一个输入,但添加后会跳过第一个字符

时间:2018-07-30 16:00:44

标签: c++

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>

0 个答案:

没有答案