圖片示例:
scanf函數不會對函數作一個空間檢測
(沒有作空間越界的判斷)
可能會棧溢出,而後程序崩潰
總之scanf函數不安全
例:c++
解決方法
1.考慮使用VS提供的scanf_s函數代替scanf
可是隻能在VS下使用,下降了代碼的可移植性,跨平臺性
不考慮使用安全
2.使用#define _CRT_SECURE_NO_WARNINGS 1
一勞永逸的方法
注意必定是#define(空格) _CRT_SECURE_NO_WARNINGS 1
例:#define _CRT_SECURE_NO_WARNINGS 1
(每次打開文件都會在最頂層出現#define _CRT_SECURE_NO_WARNINGS 1,並且這句話必定要出如今最頂層)
圖像演示
1.打開此電腦
2.找到VS的安裝路徑中的VC
3.用notepad++打開newc++.file
4.在裏面輸入# define _CRT_SECURE_NO_WARNINGS 1
5.CTRL鍵加s鍵保存便可
方法二
缺點每次都要先操做
1.右擊鼠標點擊屬性
2.點擊預處理器,在這句WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)的後面加上 ; _CRT_SECURE_NO_WARNINGS(1必定沒有)點擊肯定便可
方法三
缺點每次都要先操做
1.點擊新建項時選擇win32
2.點擊下一步,不要點肯定
3.取消紅色圈出的兩項
4.點擊空項目
5.點完成便可成功
此方法只會報警告不會報錯ide