我使用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;
在打印输出时使用它时,第二行输出中的每个第一个字符都丢失了吗?
答案 0 :(得分:3)
std::getline
函数读取(但不存储)换行符,因此在循环的第二次(以及后续每次)迭代中,您对ignore
的调用将读取该行的第一个字符。
您应该在循环之前将ignore
调用移动。