使用 Scanf 调试断言失败

Debug Assertion Failed Using Scanf

我正在做一个学校项目,我必须将值 A 和 B 用作整数,并将 %d 和 %c 与 scanf 一起使用。我必须使用带有禁用 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;
}

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

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

I have to use the values A and B as ints as well as use %d and %c with scanf.

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

标准建议:不要在 C++ 中使用 scanf()