VS2013执行代码后出现的异常提示
VS2013执行代码后出现的错误提示
用VS2013执行下列代码会出现如图所示的错误提示:
# include <stdio.h>
int main(void)
{
double number1 = 0.0;
double number2 = 0.0;
char operation = 0;
printf("\n请输入:");
scanf_s("%lf %c %lf", &number1, &operation, &number2);
switch (operation)
{
case '+':
printf("= %lf\n", number1 + number2);
break;
case '-':
printf("=%lf\n", number1 - number2);
break;
case'*':
printf("= %lf\n", number1*number2);
break;
case '/':
if (number2 == 0)
printf("输入不合法");
else
printf("= %lf\n", number1 / number2);
break;
case '%':
if ((long)number2 == 0)
printf("输入不合法");
else
printf("=%lf", (long)(number1) / (long)(number2));
break;
default:
printf("请输入");
break;
}
// getchar();
return 0;
}
下图附上VC6.0和VS2013的执行结果



------解决方案--------------------
输入的每个字符之间加一个空格
------解决方案--------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
用VS2013执行下列代码会出现如图所示的错误提示:
# include <stdio.h>
int main(void)
{
double number1 = 0.0;
double number2 = 0.0;
char operation = 0;
printf("\n请输入:");
scanf_s("%lf %c %lf", &number1, &operation, &number2);
switch (operation)
{
case '+':
printf("= %lf\n", number1 + number2);
break;
case '-':
printf("=%lf\n", number1 - number2);
break;
case'*':
printf("= %lf\n", number1*number2);
break;
case '/':
if (number2 == 0)
printf("输入不合法");
else
printf("= %lf\n", number1 / number2);
break;
case '%':
if ((long)number2 == 0)
printf("输入不合法");
else
printf("=%lf", (long)(number1) / (long)(number2));
break;
default:
printf("请输入");
break;
}
// getchar();
return 0;
}
下图附上VC6.0和VS2013的执行结果
------解决方案--------------------
输入的每个字符之间加一个空格
------解决方案--------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。