开天辟地的卷毛 2022-10-24 17:17 采纳率: 85.4%
浏览 33
已结题

C语言加了清屏代码,出现警告,怎么解决


#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

typedef int datatype;

typedef struct node
{
    datatype data;    //数据域
    struct node* next;//指针域
}ND, * PND;

typedef struct linkstack
{
    PND ptop;  //栈顶指针
    PND pbot;  //栈底指针
}ST, * PLST;

PLST initstack()
{
    //申请管理结构体
    PLST pst = (PLST)malloc(sizeof(ST));
    if (pst == NULL)
        return pst;
    //申请链表
    PND phread = (PND)malloc(sizeof(ND));
    if (phread == NULL)
    {
        printf("malloc phread fail\n");
        free(pst);
        return NULL;
    }
    phread->next = NULL;

    pst->ptop = phread;
    pst->pbot = phread;
    return pst;
}

void push(PLST pst, datatype d)
{
    PND pnew = (PND)malloc(sizeof(ND));
    if (pnew == NULL)
        return;
    if (d > 10)
    {
        d = d - 10 + 'A';
        pnew->data = d;
        pnew->next = NULL;
    }
    else
    {
        pnew->data = d;
        pnew->next = NULL;
    }
    pst->ptop->next = pnew;
    pst->ptop = pnew;
}

bool is_empty(PLST pst)
{
    if (pst->pbot == pst->ptop)
        return true;
    else
        return false;
}

void pop(PLST pst, datatype* val)
{
    if (is_empty(pst))
    {
        printf("the link stack is empty\n");
        return;
    }
    PND ptamp = pst->pbot; //定义一个PND类型的结构指针用于找到ptop节点,只有结构指针可以操作结构内的数据
    while (ptamp->next != pst->ptop) 
        ptamp = ptamp->next;
    *val = pst->ptop->data;      //存放当前即将出栈的数据
    PND q = pst->ptop;     //定义一个临时指针用于存放现在的ptop,最后将它清理掉
    pst->ptop = ptamp;
    pst->ptop->next = NULL;
    free(q);
}

void dec_to_oct(PLST pst,datatype cover,datatype base)
{
    while (cover > 0)
    {
        push(pst, cover % base);
        cover = cover / base;
    }
    datatype val;
    if (base >= 10)
        printf("0x");
    else
        printf("0");
    while (1)
    {
        if (is_empty(pst))
            break;
        pop(pst, &val);
        if (val >= 10)
            printf("%c", val);
        else
            printf("%d", val);
    }
    printf("\n");
}
int main()
{
    datatype cover, base;
    char clsn;
    PLST pst = initstack();
    printf("please enter the cover( <0 to quit): ");
    while (scanf_s("%d",&cover)&&(cover < 0))
    {
        printf("please enter the base: ");
        scanf_s("%d", &base);
        dec_to_oct(pst, cover, base);
        printf("\n\nWhether to clear the screen(y/anyother): ");
        scanf_s("%c", &clsn, 2);
        
        printf("please enter the cover again( <0 to quit): ");
    }
    system('cls');
}

如代码最后,加了一个system('cls');这行代码。
但是出现以下警告,怎么解决呀
严重性 代码 说明 项目 文件 行 禁止显示状态

警告 C4024 “system”: 形参和实参 1 的类型不同
警告 C4047 “函数”:“const char *”与“int”的间接级别不同

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-24 17:23
    关注

    system("cls");
    cls是字符串,要用双引号才对

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

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址