|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题描述:如果定义了一个整形数据用户给它赋值为 字符型 怎摸去判断这个数据是否赋值成功
#include <iostream>
int calc(int x);
int calc(int x,int y);
int calc(int x,int y,int z);
int main(int argc,char *argv[])
{
int sum;
int x,y,z;
next: std::cout<<"请输入x的值:";
std::cin >> x;
if (!std::cin)
{
std::cout <<"输入的值不为整形数据请重新输入:";
std::cin.clear(); //用来更改cin的状态标示符
std::cin.sync(); //用来清楚缓存区的数据留
goto next;
}
sum = calc(x);
std::cout << "平方和为:"<<sum<<'\n';
next1: std::cout <<"请输入x 空格 y 的值:";
std::cin>>x>>y;
if (!std::cin)
{
std::cout <<"输入的值不为整形数据请重新输入:";
std::cin.clear(); //用来更改cin的状态标示符
std::cin.sync(); //用来清楚缓存区的数据留
goto next1;
}
sum =calc(x,y);
std::cout <<"两个数的成绩为:" <<sum<<'\n';
// std::cin.clear();
// std::cin.ignore(100,'\n');
std::cout << "请输入x 空格 y 空格 z 的值:";
next3: std::cin>>x>>y>>z;
if (!std::cin)
{
std::cout <<"输入的值不为整形数据请重新输入:";
std::cin.clear(); //用来更改cin的状态标示符
std::cin.sync(); //用来清楚缓存区的数据留
goto next3;
}
sum =calc(x,y,z);
std::cout <<"三个参数的和为:" <<sum<<'\n';
//std::cin.clear();
//std::cin.ignore(100,'\n');
return 0;
}
int calc(int x)
{
int sum;
sum = x*x;
return sum;
}
int calc(int x,int y)
{
int sum;
sum = x*y;
return sum;
}
int calc(int x,int y,int z)
{
int sum;
sum =x+y+z;
return sum;
}
经过多方面的查资料用if (!std::cin) 来判断是否赋值成功
用std::cin.clear();std::cin.sync();
来清空cin流中缓存数据
各位大牛还有什么好的办法去清空缓存和赋值的对错
|
|