首页
社区
课程
招聘
简单代码 报错 溢出 (本人小白一个)

Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.

 

#include <stdio.h>

 

#define CLEARBUFF scanf("%[^\n]%c")

 

int main()
{

int a = 0;
int b = 0;
char c = '0';
int d = 0;
printf("请输入 一个数字");
scanf_s("%d",&a);
CLEARBUFF;
printf("请在输入 一个数字:");
scanf_s("%d",&b);
CLEARBUFF;
printf("请输入符号:");
scanf_s("%s",&c,10);
CLEARBUFF;

switch (c)
{
case '/':
    d = a / b;
    break;
case '+':
    d = a + b;
    break;
case '-':
    d = a - b;
    break;
case '*':
    d = a * b;
    break;
default:
    printf("输入字符错误\r\n");
    break;

}


printf("结果:%d",d);

}

收藏
1条回答
0346954 2021-8-11

在printf("请输入符号:");语句下面加上语句
getchar();//加这个 是因为为变量b赋值时 输入了 b的值 以及一个回车键 如果不加getchar(),那么下面c获取到的是\n换行符

 

scanf_s("%s",&c,10);修改为
scanf_s("%c", &c, 1);//使用%c获取一个字符,%s是获取字符串,此处应为获取字符,最后一个参数为1 代表字符C最多容纳一个字符

回复