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