使用Scanf的调试断言失败

时间:2018-09-27 21:49:03

标签: c++ debugging assertion

我正在做一个学校项目,必须将值A和B用作整数,并在scanf中使用%d和%c。我必须使用带有禁用4996的scanf来获取输入,但是它会不断触发调试断言错误,我无法弄清楚。

#pragma warning(disable:4996)
#include <stdio.h>
#include <conio.h>

int main() {
    int a = 0;
    int b = 0;

    printf("enter first value: ");
    scanf("%c", a);

    printf("\nenter second value: ");
    scanf("%d", b);

    printf("%d%d",a,b);




    _getch();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

scanf()期望得到应该写入的变量的地址:

scanf("%d", &a);
            ^^
  

我必须将值A和B用作整数,并在scanf中使用%d和%c。

您不能将%c与整数一起使用,因为格式字符串必须与类型中的输出参数匹配。

标准建议:请勿在C ++中使用scanf()