#vs!scanf函数不能使用的原因以及解决办法。

何谓不能使用?

  当我们在vs里边正常使用scanf函数的时候,vs会产生(如下图)

当我们不加任何操作的时候,vs会产生一个警告,一个报错,接下来我来一一说明。


一个报错

  1.为何scanf函数不安全

  在vs里边,scanf函数会被认为是不安全的,那什么是不安全呢?

  从图片里边不难看出,我定义了一个字符数组并且用scanf函数输入了erzong,当我运行的时候,确实在屏幕上也打印出来了,但vs会出现一个error。因为我命名定义的长度为5的字符数组,但我输入的时候是6个字符,却也正常打印出来了,这就所谓scanf函数不安全的地方。当然还有其他的,这里只举这一个例子。

2.解决办法

 2.1:方法1

 我们可以根据vs的报错提示在文件的最顶端放置一条信息

#define _CRT_SECURE_NO_WARNINGS 1

这样就可以避免报错,但是这种方法会有点麻烦,因为每当新建一个.c源文件的时候,都需要加上这一条语句。

2.2:方法2

 跟方法1一样,也是每次新建.c源文件的时候在最上边加上刚才的那条语句,但这次是一劳永逸的。如果你的电脑上有everything这个软件的话,你可以打开直接搜索newsc++file.c这个文件

其中里边的这个文件路径就是当初安装vs的那个路径底下。接下来打开鼠标右击该文件,点路径选项。

之后就来到了该文件具体位置的地方,选择用记事本打开。然后增加 

#define _CRT_SECURE_NO_WARNINGS 1  这条语句,并且保存记事本。不过往往没那么顺利。

可能会出现这个警告。这时候进行如下操作。

1.剪切该文件到桌面上。

2.打开这个剪切到桌面上的文件加入那条语句,并且保存,然后再将那个文件剪切回原来的路经底下。

3.大功告成,打开vs,这时候你再新建源文件就直接在最上边产生那条语句。效果如下


一个警告

  使用scanf函数的时候常常也会出现警告,说是返回值被忽略,因为scanf函数是有返回值的,返回值代表的是scanf成功读取到的数据的个数,如果发生读取错误或者到达文件末尾就会返回EOF,什么都没有读到就会返回0.


备注:vs往往会让你用scanf_s这个函数来代替scanf函数,但因为scanf_s这个函数仅限vs这个IDE使用,所以就不过多介绍了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值