首頁
社區(qū)
課程
招聘
簡單代碼 報錯 溢出 (本人小白一個)

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("請輸入 一個數(shù)字");
scanf_s("%d",&a);
CLEARBUFF;
printf("請在輸入 一個數(shù)字:");
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("結(jié)果:%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是獲取字符串,此處應(yīng)為獲取字符,最后一個參數(shù)為1 代表字符C最多容納一個字符

回復(fù)