m0_74128289 2023-03-25 19:51 采纳率: 87.5%
浏览 22
已结题

为什么按回车输入还不停止

为什么按回车输入还不停止


```c++
#include<iostream>
#include<cstring>
using namespace std;

class Set
{
public:
    Set(){
        this->length=0;
        memset(this->Setnum,0,sizeof(Setnum));
        cout<<"默认构造函数"<<endl;
    }
    Set(int *n){
        for(int i=0;i<_msize(n)/sizeof(*n);i++)
            this->addnum(n[i]);
        cout<<"普通构造函数"<<endl;
    }
    Set(Set &s){
        length=s.length;
        for(int i=0;i<s.length;i++)
            Setnum[i]=s.Setnum[i];
        cout<<"拷贝构造函数"<<endl;
    }
    ~Set(){
        cout<<"析构函数"<<endl;
    }

    void addnum(int num);
    void delnum(int num);
    void shownum();
    Set jiaoji(Set &s2);
    Set bingji(Set &s2);
    Set chaji(Set &s2);
    bool equals1(Set &s2);
    bool ifinclude(Set &s2);
    bool ifempty();
    int numsize();
    void beempty();

private:
    int Setnum[100];
    int length=0;
};

void Set::addnum(int num){
    int flag=0;
    for(int i=0;i<length;i++){
        if(Setnum[i]==num){
            flag=1;
            break;
        }
    }
    if(flag==0){
        Setnum[length]=num;
        length++;
    }
}

void Set::delnum(int num){
    int n=length;
    while(n--){
        if(Setnum[n]==num)
            break;
    }
    for(int i=n;i<length-1;i++){
        Setnum[i]=Setnum[i+1];
    }
    length--;
}

void Set::shownum(){
    for(int i=0;i<length;i++){
        cout<<Setnum[i]<<" ";
    }
    cout<<endl;
}

Set Set::jiaoji(Set &s2){
    Set s;
    for(int i=0;i<this->length;i++){
        s.Setnum[i]=this->Setnum[i];
        s.length=this->length;
    }
    for(int i=0;i<s2.length;i++){
        s.addnum(s2.Setnum[i]);
    }
    return s;
}

Set Set::bingji(Set &s2){
    Set s;
    for(int i=0;i<this->length;i++){
        for(int j=0;j<s2.length;j++){
            if(this->Setnum[i]==s2.Setnum[j]){
                s.Setnum[i]==s2.Setnum[j];
                s.length++;
            }
        }
    }
}

Set Set::chaji(Set &s2){
    int flag=0;
    Set s,s3;
    s3=this->bingji(s2);
    for(int i=0;i<this->length;i++){
        flag=0;
        for(int j=0;j<s3.length;j++){
            if(this->Setnum[i]==s3.Setnum[j]){
                flag=1;
                break;
        }
    }
        if(flag==0){
            s.Setnum[s.length]=this->Setnum[i];
            s.length++;
        }
    }
    return s;
}

bool Set::equals1(Set &s2){
    if(this->length!=s2.length)
        return false;
    for(int i=0;i<this->length;i++){
        if(this->Setnum[i]!=s2.Setnum[i])
            return false;
    }
    return true;
}

bool Set::ifinclude(Set &s2){
    Set *s3=new Set();
    *s3=this->bingji(s2);
    if(s3->length==this->length||s3->length==s2.length)
        return true;
    else
        return false;
}

bool Set::ifempty(){
    if(this->length==0)
        return true;
    else
        return false;
}

int Set::numsize(){
    return this->length;
}

void Set::beempty(){
    memset(Setnum,0,sizeof(Setnum));
    this->length=0;
}

int main()
{
    Set s1;
    char *ch='ch';
    int num;
    cout<<"Enter multiple numbers"<<endl;
    while(ch!='endl'){
        cin>>num;
        s1.addnum(num);
        cin>>ch;
    }
    s1.shownum();
}





```

  • 写回答

3条回答 默认 最新

  • IT_service_mesh 2023-03-25 20:00
    关注

    参考GPT和自己的思路:根据你贴出的代码,我看到你在输入数字时使用了一个 while 循环,判断的条件是 ch 不等于 "endl",但是 ch 先被赋值为了一个 char 指针 "ch",并没有进行正确的赋值。正确的做法应该是将 ch 声明为字符类型,然后在循环中使用 getchar() 函数进行输入,直到输入的字符为回车键时跳出循环即可。修改后的代码如下:

    int main()
    {
        Set s1;
        char ch;
        int num;
        cout<<"Enter multiple numbers"<<endl;
        while((ch=getchar())!='\n'){
            cin>>num;
            s1.addnum(num);
        }
        s1.shownum();
    }
    

    这样输入数字后按回车即可停止输入。

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

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成
  • ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题