一运行就跳到头文件报错是为什么

#include<stdio.h>
int main()
{
double a, b;
char op;
printf("请输入\n");
scanf_s("%lf%c%lf", &a, &op, &b);
if (op== '+')
printf("%f", a + b);

return 0;

}

img

scanf_s("%lf%c%lf", &a, &op, &b);
改成
scanf_s("%lf%c%lf", &a, &op,1, &b);

scanf("%lf%c%lf", &a, &op, &b);

原因:scanf_s在遇到%s和%c时,需要额外传递长度参数,%c长度是1。

直接输入 1 + 2

scanf_s是格式化输入,若输入的字符也是数字将无法分辨,可以改成

scanf_s("%lf%c%lf", &a, &op,1,&b);

输入时用enter分隔