c语言初学者问题

2024-12-02 04:19:31
推荐回答(3个)
回答1:

标准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系统下跑的.

回答2:

scan为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。

scanf_s最后一个参数是缓冲区的大小,表示最多读取n-1个字符.

vc++2005/2008中提供了scanf_s(),在最新的VS2013中也提供了scanf_s()。在调用时,必须提供一个数字以表明最多读取多少位字符。

回答3:

你是怎么输入的。