本文介绍了如果在一些输入后使用getline()不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
getline()
不工作,如果我在一些输入后使用它,即
getline()
is not working, if I use it after some inputs, i.e.
#include<iostream>
using namespace std;
main()
{
string date,time;
char journal[23];
cout<<"Date:\t";
cin>>date;
cout<<"Time:\t";
cin>>time;
cout<<"Journal Entry:\t";
cin.getline(journal,23);
cout<<endl;
system("pause");
}
其中就像使用 getline code>在输入之上,它的确工作即
where as if I use getline()
on top of inputs, it does work i.e.
cout<<"Journal Entry:\t";
cin.getline(journal,23);
cout<<"Date:\t";
cin>>date;
cout<<"Time:\t";
cin>>time;
可能是什么原因?
推荐答案
当 cin.getline()
从输入读取时,输入流中有一个换行符,因此它不会读取您的c-串。使用 cin.ignore()
beore调用 getline()
。
When cin.getline()
reads from the input, there is a newline character left in the input stream, so it doesn't read your c-string. Use cin.ignore()
beore calling getline()
.
cout<<"Journal Entry:\t";
cin.ignore();
cin.getline(journal,23);
这篇关于如果在一些输入后使用getline()不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!