标准C语言没有scanf_s()这个函数.
scanf_s()是微软在VC++,VS系列的编译器中提供的函数,用于防止出现scanf()越界的问题.
scanf_s()比scanf()多需要一个参数,来指定char型内存空间的大小,所以若改为scanf_s(),代码应为:
scanf_s("%lf%c%lf",&num1,&operation,1,&num2);
如果不是打算做windows的程序员,最好别用scanf_s(),这个函数会让你的代码可移植性变低,而且很多程序是在unix或类unix系统下跑的.
scan为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。
scanf_s最后一个参数是缓冲区的大小,表示最多读取n-1个字符.
vc++2005/2008中提供了scanf_s(),在最新的VS2013中也提供了scanf_s()。在调用时,必须提供一个数字以表明最多读取多少位字符。
你是怎么输入的。