SCANF SCANF_S


今天在看C的教程的时候,用VS2013写了一小段代码 scanf("%f",&w);

 

提示需要在预编译器里添加 _CRT_SECURE_NO_WARNINGS,  百度了下,发现要么用 scanf_s 来代替scanf,要么就添加这个定义

原因是,VS针对scanf的不安全性,又包了一个scanf_s的函数 ,定义里,多了一个长度的参数, scanf_s("%s",buf,sizeof(buf));

这样不会导致内存溢出错误(比如只能接受4个长度的数组,输入的时候却输入了6个长度)

(我也没明白,这个溢出会有什么异常)

GCC里直接编译,scanf,不会有错误提示的,这个错误是Windows专有的. 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM