【问题】warning C4996,This function or variable may be unsafe解决方案

5 篇文章 0 订阅
4 篇文章 0 订阅
问题

【问题】warning C4996: ‘scanf’: This function or variable may be unsafe

经常有初学者在学习C/C++语言的时候,使用VS系列编译器。
在使用scanf函数从标准输入读取字符、数字的时候,看到编译器报一个警告:

warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

很无奈,熟手无策,这里给出解决方案:

解决方案

在你的代码的最前面(一定)加上下面这句代码,即可解决问题,试试?

#define _CRT_SECURE_NO_WARNINGS 1

那岂不是每个源文件都要加这句话吗?
有么有一劳永逸的办法?
有!
在你VS安装目录下:
例如我的安装目录在C盘,找到下面的目录:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcprojectitems

在这个目录下有一个文件叫newc++file.cpp,打开这个文件,在里边加上下面的代码。

#define _CRT_SECURE_NO_WARNINGS 1

以后你创建的每个源文件中都会有这句话,这样就再也不用担心看到这个警告了。

但是肯定有人问,为什么不使用警告中的scanf_s函数,我想说的是这个函数是VS编译器提供的,而不是C语言标准定义的,所以这个函数是不具有跨平台的代码,只在VS编译器可以被编译使用。所以不考虑使用,而如果你的代码就只是在windows上使用,可以考虑。


关注公众号:IT笔试面试真题讲解,回复:666,领取更多真题资料

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值