帮忙看看一段简单的代码,谢谢
cout<<"要输入下一个数据吗 (Y/N)"<<endl;
char choice;choice=getchar();
if(choice=='Y'|| choice=='y')
{省略 }
我的目的是当用户按Y键的时候,就执行里面的代码,但编译运行后发现,显示完“要输入下一个数据吗”之后就直接显示“Press any key to continue”了,再按任意一键就直接结束运行了。这是怎么回事啊,怎样才能达到我的目的呢?
[解决办法]
因为你一般输入结果的时候没有把最后一个回车给算了
如果
int i = 0;
cin>>i;
其实当你输入完4后面要加一个回车。。于是getchar()得成回车了
[解决办法]
老问题啦, cout后面 fflush(stdin);
[解决办法]
- C/C++ code
#include <iostream>using namespace std;int main (int argc, char const* argv[]){ char choice = '\0'; int i = 0; cout<<"input i..."<<endl; cin>>i; cout<<"i = "<<i<<endl; fflush( stdin ); cout<<"要输入下一个数据吗 (Y/N)"<<endl; choice=getchar(); if(choice=='Y'|| choice=='y') { cout<<"got you...."<<endl; } return 0;}
[解决办法]
3楼说的fflush没错,那是C的用法
C++的iosteam里,你可以试一下cin.clear()