std::getline 输入在 C++ 中无法正常工作
我正在处理以下代码:
int main()
{
int num;
string str;
cin>>num;
int points[num][2];
for(int i=0;i<num;i++)
{
cout<<"\nPoint"<<i<<":";
getline (cin,str);
points[i][0]=atoi(&str[0]);
points[i][1]=atoi(&str[2]);
}
for(int i=0;i<num;i++)
{
cout<<"\npoint"<<i<<" = "<<points[i][0]<<" "<<points[i][1];
}
问题与我得到的上面的代码是当我输入 num
值作为某个整数然后按 Enter 键时,而不是打印...
“Point 0:”
...并等待我输入它打印“点 0:”和“点 1:”然后获取点 1 的输入。
对于点 0,它自动将输入视为 0 和 0。
Possible Duplicate:
Need help with getline()
getline not asking for input?
I am working on the following code:
int main()
{
int num;
string str;
cin>>num;
int points[num][2];
for(int i=0;i<num;i++)
{
cout<<"\nPoint"<<i<<":";
getline (cin,str);
points[i][0]=atoi(&str[0]);
points[i][1]=atoi(&str[2]);
}
for(int i=0;i<num;i++)
{
cout<<"\npoint"<<i<<" = "<<points[i][0]<<" "<<points[i][1];
}
The problem with the above code that I am getting is when I enter the num
value as some integer and then press enter, instead of printing...
"Point 0:"
...and waiting for me to enter it prints "Point 0:" and "Point 1:" and then takes the input for Point 1.
For point 0 it automatically takes input as 0 and 0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的程序在以下时间后尚未消耗换行符:
传统的方法是:
numeric_limits
在
中定义。Your program hasn't consumed the newline after:
The conventional way to do so is this:
numeric_limits
is defined in<limits>
.根据约翰·韦斯利王子的回复,尝试
在再次使用流缓冲区之前刷新它。
Following on from Prince John Wesley's reply, try
to flush the stream buffer before using it again.