鱼C论坛

 找回密码
 立即注册
查看: 1510|回复: 0

c++关于cin 的取值的问题

[复制链接]
发表于 2014-11-15 21:37:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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流中缓存数据
各位大牛还有什么好的办法去清空缓存和赋值的对错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表