读书人

帮忙看看一段简单的代码多谢

发布时间: 2012-03-12 12:45:33 作者: rapoo

帮忙看看一段简单的代码,谢谢

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()

读书人网 >C++

热点推荐