如何解决VS上使用scanf报错的原因/问题


scanf报错 scanf报错样例2  以上代码报错,并不是你代码书写错误,而是警告scanf函数可能是不安全的,考虑使用scanf_s函数来替代。scanf_s函数是VS中msvc这个编译器提供的函数,不是C语言本身的库函数。如果在代码中使用scanf_s函数,那么我们写的这个代码,只能在VS上编译, 使得我们的代码就不具有跨平台性。那我们应该如何解决这个报错呢?

一、解决当前文件错误的方法

Created with Raphaël 2.3.0 报错 把下面这一串代码添加在(使用scanf函数的代码中)的第一行: #define _CRT_SECURE_NO_WARNINGS 1 可以运行

  把上面的(#define _CRT_SECURE_NO_WARNINGS 1)这段代码添加进去就可以解决当前报错,记住,一定要放在代码的第一行。下面就是没添加在第一行的后果。
报错

二、一劳永逸解决的办法

  目标:在创建.c文件的时候,自动在.c文件第一行加上:(#define _CRT_SECURE_NO_WARNINGS 1),下面图片就是方法:
步骤
  一般newc++file.cpp文件是在那个路径。找到根据方法,把文件复制到桌面,在桌面打开,在里面添加(#define _CRT_SECURE_NO_WARNINGS 1)保存,然后拷贝回之前那个路径覆盖那个文件就完成了所有步骤,在之后创建.c文件就会自动在开头加上那句代码了,这就实现我们的目标了。

注:可能安装版本不一样,newc++ file.cpp文件不在那个路径,我们就很难查找到,这个时候我们就使用一个搜索软件搜索就行。版本:下载安装版64位。
搜索软件
下载链接: https://www.voidtools.com/zh-cn/downloads/

三、为什么scanf会报错

引用下面这张图片做解释:
scanf报错原因
  如上图这个代码,arr数组只能存放五个元素,但操作者不一定知道,直接输入abcdefghi这一串字符,可是printf不管你输入了多少,直接全部给你打印出来。而arr[5]只能存放五个,这时就会出现错误,程序直接卡死,这就是VS会出现scanf返回值被忽律,报错的原因,提示scanf不安全。这个错误,只会出现在VS上,devC++和其他编译器没有。
  到这里我们就解决了VS使用scanf会出现报错的问题,使用宏解决报错的问题。并知道了报错的原因。如果自己尝试解决不了,欢迎私信我帮你解决这个问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值