VS2013和VC6.0问题
本帖最后由 cheny3636 于 2014-8-17 18:02 编辑用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执行后会出现程序异常,用Vc6.0又没有问题。这类问题应该如何避免错误访问呢?
VS2013输入字符串必须指定输入长度
你把 scanf_s("%lf%c%lf", &number1,&operation,&number2);
改成 scanf_s("%lf%c%lf", &number1,&operation, sizeof(1),&number2);
就行了 表示VS的连怎么运行都不会。。。。 有没大神啊 求解答这VS2013是错误操作了系统地址还是咋滴? 是不是不兼容啊 VC++6.0哪里下载啊:mad: 我也试着用过VS2013 也是一样程序过不了编译 有些我用VS2013也是会出错,是因为他们的标准不一样,VS的标准更为严格,vc++6.0好像是C99,VS2013不清楚。 :lol::lol::lol: 你好啊 发表于 2014-8-21 00:05
VS2013输入字符串必须指定输入长度
你把
改成
:lol: 你好啊 发表于 2014-8-21 00:05
VS2013输入字符串必须指定输入长度
你把
改成
恩 问题已经找到了 你那种也可以 用scanf也可以
# include <stdio.h>
int main(void)
{
double number1 = 0.0;
double number2 = 0.0;
char operation = 0;
printf("\n请输入:");
scanf("%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;
}
return 0;
} 我只是路过打酱油的。 还是vc好 不会报错 我用vs2010但是不支持debug版本 只支持release版本 开始很倒腾了很久 还是vc实在 :funk:
页:
[1]