首页 > 编程知识 正文

c语言程序出现C4996scanf 等错误的解决方法,出现了错误oobeeula解决办法

时间:2023-05-04 21:00:23 阅读:182281 作者:4234

C语言——程序C4996:scanf等错误的解决方法(用scanf_s不替换解决)问题事例解决方法1方法2

在VS编译器下,编写的C语言程序在调试编译时可能会出现c4996警告和错误等反馈信息,这里根据自己的实践经验总结了一些解决这类问题的方法。 以下,通过具体例子进行叙述。

问题的实例

我给你看一段简单的代码:

int main () {int age=0; printf ('请输入年龄:'); scanf('%d ',age ); printf ('您输入的年龄是%dn ',age ); 返回0; }调试运行过程中显示错误或警告消息:

1----3360项目: test已开始生成。 debug win32---1 test.c1h :2020 c学习classcodetest test.c ) 24 ) : errorc 4996: ' scanf ' : thisfunctionorvariablemaybeunsafe.considerusingscanf _ sinstead.todi scad elpfordetails.1c : (program files (x86 ) Windowskits(10 ) Inching sdio.h(1270 ) :note:「scanf”声明==========

1----3360项目: test已开始生成。 debug win32---1 test.C1 test.vcx proj-h :2020 cc学习 class codetest test.exe======3:

但是,实际上,scanf是c语言提供的函数,提供scanf_s是为了避免使用大多数编译器,但scanf_s函数是VS编译器提供的本身认为安全的版本,在其他编译器下不一定是这样

解决方法1 (在错误报告提示中,叙述以下内容。

To disable deprecation,use _CRT_SECURE_NO_WARNINGS .为此,在源程序的开头(头文件之前)添加代码。

# define _ CRT _ secure _ no _ warnings 1调试编译后,问题得到解决:

1----3360项目: test已开始生成。 debug win32---1 test.C1 test.vcx proj-h :2020 cc学习Classcode test test.exe==========:生成成功的1个、失败的0个、最新的0个、跳过的0个=======每次编写程序时都不添加以上一行代码

找到您自己安装的visual studio路径------Microsoft visual studio 14.0------ VC---- VC 只显示以上代码,可以解决c4996中出现的scanf、strcpy、strcat等函数的警告和错误报告问题。

方法2与方法1一样,在头文件之前添加以下行代码也可以解决问题。

# pragma warning (distable :4996 )要使上述代码行自动显示在新创建的. c文件中,请参阅方法1的方法步骤。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。