C++中如果把一个字母输入整形变量...
例如:voidmain(){intk;cin>>k;cout<<k;}如果在对k进行输入时,不小心输入了一个字母...如何解决这种问题?再例如这段,如何解决死循环的问题。...
例如:
void main()
{
int k;
cin >>k;
cout <<k;
}
如果在对k进行输入时,不小心输入了一个字母...如何解决这种问题?
再例如这段,如何解决死循环的问题。
for (;;)
{
int v;
cin >>v;
if (v>0)
{
comnumber=v;
break;
}
else
{
cout <<"警告!非法输入。请重新输入。" <<endl;
continue;
} 展开
void main()
{
int k;
cin >>k;
cout <<k;
}
如果在对k进行输入时,不小心输入了一个字母...如何解决这种问题?
再例如这段,如何解决死循环的问题。
for (;;)
{
int v;
cin >>v;
if (v>0)
{
comnumber=v;
break;
}
else
{
cout <<"警告!非法输入。请重新输入。" <<endl;
continue;
} 展开
5个回答
展开全部
我研究过这个问题:基本上解决了只输入数字的问题:
#include <string>
#include<iostream>
using namespace std;
void main()
{
string a;
cin>>a;
for( ; ; )
{
if(a<"25"&&a>"0")
{
if(atof(a.c_str())==atoi(a.c_str()))
break;
else
{
cout<<"输入错误,请重新输入"<<endl;
cin>>a;
}
}
else
{
cout<<"输入错误,请重新输入"<<endl;
cin>>a;
}
}
cout<<a<<endl;
int b=atof(a.c_str());
cout<<b<<endl;
system("pause");
}
你试试!
补充: 其实你可以换种角度想这个问题,将你那个不知道是什么东西的comnumber变为char类型的,再进行判断不就可以了么?
假如你从键盘上输入的是17,你不要用%d去接收,用%s,转换成“17”,就好判断了;至于怎么判断,我上边有例子
#include <string>
#include<iostream>
using namespace std;
void main()
{
string a;
cin>>a;
for( ; ; )
{
if(a<"25"&&a>"0")
{
if(atof(a.c_str())==atoi(a.c_str()))
break;
else
{
cout<<"输入错误,请重新输入"<<endl;
cin>>a;
}
}
else
{
cout<<"输入错误,请重新输入"<<endl;
cin>>a;
}
}
cout<<a<<endl;
int b=atof(a.c_str());
cout<<b<<endl;
system("pause");
}
你试试!
补充: 其实你可以换种角度想这个问题,将你那个不知道是什么东西的comnumber变为char类型的,再进行判断不就可以了么?
假如你从键盘上输入的是17,你不要用%d去接收,用%s,转换成“17”,就好判断了;至于怎么判断,我上边有例子
展开全部
cin 输入以后,可以检查是否输入失败。失败了,让他再输入,成功了,往下走。
因为 cin.fail() 为真,就是失败。你可以这样写:
#include<iostream>
using namespace std;
#include <stdio.h>
int main()
{
int k;
do {
cin >> k;
if(cin.fail()) {
cin.clear();
cin.ignore();
cout << "Incorrect entry. Try again: ";
} else break;
} while (1);
cout << k;
return 0;
}
循环语句也可以用此 方法。
因为 cin.fail() 为真,就是失败。你可以这样写:
#include<iostream>
using namespace std;
#include <stdio.h>
int main()
{
int k;
do {
cin >> k;
if(cin.fail()) {
cin.clear();
cin.ignore();
cout << "Incorrect entry. Try again: ";
} else break;
} while (1);
cout << k;
return 0;
}
循环语句也可以用此 方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/ 是求商
% 是求余
要判断一个数能不能被整除用%
还有就是LZ的编程真的。。。
#include<iostream.h>这个是c的命令包含c++用#include<iostream>
而且c++里德main函数是正型的得返回值
cin>>x;
cout<<"写一个整数"<<endl;掉换一下,不然的话,等你输入数字按回车之后才显示出 写一个整数 起不到提示的效果
更改后的程序如下
#include<iostream.h>
int main()
{
int x;
cout<<"写一个整数"<<endl;
cin>>x;
if((x%3==0)&&(x%5==0))
cout<<"这个数能同时被3和5整除"<<endl;
if((x%3!=0)&&(x%5!=0))
cout<<"这个数不能被3和5整除"<<endl;
return 0;
}
% 是求余
要判断一个数能不能被整除用%
还有就是LZ的编程真的。。。
#include<iostream.h>这个是c的命令包含c++用#include<iostream>
而且c++里德main函数是正型的得返回值
cin>>x;
cout<<"写一个整数"<<endl;掉换一下,不然的话,等你输入数字按回车之后才显示出 写一个整数 起不到提示的效果
更改后的程序如下
#include<iostream.h>
int main()
{
int x;
cout<<"写一个整数"<<endl;
cin>>x;
if((x%3==0)&&(x%5==0))
cout<<"这个数能同时被3和5整除"<<endl;
if((x%3!=0)&&(x%5!=0))
cout<<"这个数不能被3和5整除"<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以字符串输入,判断每个字符。出错后规则自己确定就行了。
非法输入是不是一直到输入正确为止。不是的话可以设置出错次数就能跳出死循环啊
非法输入是不是一直到输入正确为止。不是的话可以设置出错次数就能跳出死循环啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
会出错
cin>>k
while(! cin. 一个状态检测函数)
{
重置cin 状态
cin>>k
}
cin>>k
while(! cin. 一个状态检测函数)
{
重置cin 状态
cin>>k
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询