BGaR12 2022-12-24 16:34 采纳率: 100%
浏览 33
已结题

c++如何跳过数值输入

我想在圆的时候跳过第二个数值的输入
无法跳过这个输入,并且我设置了length的初始值为零 但我还是必须手动输入0
#include<iostream>

using namespace std;

class shaped
{
    double width,length;
    public:
    shaped(){width = 0;length = 0;}
    double getWidth(){return width;}
    double getLength(){return length;}
    void get_data()
    {
      cin>>width;
      cin>>length;
      if(!cin.good())
      {
        cin.clear();
        length=0;
      }
    }
    virtual void display_area()
    {

    }
};

class triangle:public shaped
{
    public :
    void display_area()
    {
      cout<<"Area of triangle = "<<getWidth()*getLength()<<endl;
    }

};

class rectangle:public shaped
{
    public:
    void display_area()
    {
      cout<<"Area of rectangle = "<<getWidth()*getLength()/2<<endl;
    }
    
};

class circle:public shaped
{
    public:
    void display_area()
    {
       cout<<"Area of circle = "<<3.1416*getWidth()*getWidth()<<endl;
    }

};


int main()
{
    triangle t;
    rectangle r;
    circle c;

    cout<<"Enter the value of x & y for triangle :";
    t.get_data();
    cout<<"Enter the value of x & y for rectangle :";
    r.get_data();
    cout<<"Enter the value of radius for circle :";
    c.get_data();

    t.display_area();
    r.display_area();
    c.display_area();


    return 0;
}

我试过了,但不知道为什么不行
只需要能在圆形时跳过第二个值的输入直接进入下一步就行
  • 写回答

4条回答 默认 最新

  • 关注

    不成熟的小建议, 程序逻辑有问题, 这种继承比较乱, 基类数据成员和派生类数据成员逻辑对不上, 建议基类只做公用接口, 和数据成员有关的放在派生类中.

    当然, 如果就是要这种逻辑, 那就在基类多加一个只 cin wide的函数, 如果在派生类中重载, 基类的私有成员必须变为protect, 否则无法直接访问, 也就无法改变.

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 专家已采纳回答 9月24日
  • 创建了问题 12月24日

悬赏问题

  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 有关类的报错,在模块里调用另一个模块的方法下的变量时出错
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格
  • ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)
  • ¥15 openHarmony 利用c++程序在dayu210开发板上实现拉取RTSP视频流并且在屏幕上显示
  • ¥15 GD32H757的can通信配置
  • ¥20 nist随机数测试的问题
  • ¥20 帮我解决这个项目,thank you各位程序员