在c ++中使用getline()时出错

时间:2018-05-28 10:49:36

标签: c++

我使用getline读取字符串并打印但是在使用时我无法提供输入所以我使用了ignore()

代码

  int t;
  cin>>t;
  string str;
  for(int i=0;i<t;i++)     
      {     cin.ignore();
            getline (cin, str);//reading string
           cout  << str << endl;
      }
  return 0;

在打印输出时使用它时,第二行输出中的每个第一个字符都丢失了吗?

1 个答案:

答案 0 :(得分:3)

std::getline函数读取(但不存储)换行符,因此在循环的第二次(以及后续每次)迭代中,您对ignore的调用将读取该行的第一个字符。

您应该在循环之前将ignore调用移动。