VS2019的C语言问题,scanf的为什么返回值被忽略了?我用学校机房的VC++6.0写就没问题

发布网友 发布时间:2022-04-22 12:17

我来回答

4个回答

热心网友 时间:2023-11-04 06:00

scanf函数的原型如下:

int scanf(const char * restrict format,...);

scanf的为什么返回值被忽略的原因是你的代码中没有使用scanf的返回值。

最简答的解决方案是强制忽略返回值:

(void) scanf("%d", &m);

另外一种方法是定义一个临时变量接收scanf函数的返回值。

int ret = scanf("%d", &m);
这个编译器还有一个错误,它建议你不要用scanf,而是改为用scanf_s。

追问scanf的返回值是什么啊,加_s和以前的有什么区别吗?谢谢您

追答返回值是读入的字符的个数。
加_s是scanf的一种更加安全的实现。最后的功能一样,里边多加了一些安全保护。

热心网友 时间:2023-11-04 06:00

这个可不是vc6。看错误提示,把那个大写的宏定义一下,以使用scanf函数追问啥是大写的宏啊QAQ

热心网友 时间:2023-11-04 06:01

是叫你要用scanf_s函数来代替scanf
你的工程是C++的追问为啥啊,那什么工程才可以用scanf啊,c语言不一样吗

追答VC6以后的版本都要用scanf_s来代替scanf, 你看下面的错误提示,scanf函数是一个不安全的函数,可能会造成溢出

热心网友 时间:2023-11-04 06:02

将scanf换成scanf_s

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com