如何定义int型后,输入字母不出错
人气:
【字体:大 中 小】
发布时间:2008-02-26 08:16:23
>>>>>>>>提问#include <iostream>
using namespace std;
int main()
{
int i;
bool bstutype;
do{
cin> > i;
if(i==1) bstutype=true;
if(i==2) bstutype=false;
else cout < <"必须是1或2,重新输入" < <endl;
}while((i!=1)&&(i!=2));
cout < <"bstutype=" < <bstutype < <endl;
return 0;
}
初学C写了这小段代码,输入数字后回车没什么问题,但输入字母时比如"safd"后就会错误,有没有方法使输入字母后不出错重新输入
休 闲 居 编 辑
>>>>>>>>休闲养生网回答:do{
fflush(stdin);
cin> > i;
...
不知为什么加了后无效,是不是要什么头文件
这样还是不足够的, 要这样才行
...
do{
fflush(stdin);
cin.clear(_S_goodbit);
cin> > i;
...
是我搞错了,不是c
正确的应该是这样的:
<dl class="code"><dt>C/C++ code</dt><dd><pre>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
www CodeHighlighter.com/
-->
#include <iostream>
#include <limits>
using namespace std;
int main()
{
int i;
bool bstutype;
do
{
cin>>i;
if(i==1) bstutype=true;
else if(i==2) bstutype=false;
else
{
更详细的解决办法参考 :
http://passport.baidu.com/?logout&u=http%3A//zhidao.baidu.com.jishu6.cn/java/%3fa=19.7123016531322
≡ 查看、发表评论 ≡