由於我也是剛開始學習C語言,第一次遇到這種問題,也不知道怎麼回事,而後就上Chrome研究了一番,才知道緣由,而且找到了幾種分散在個個角落的解決方法,我在這裏概括總結一下。
c++
在ANSI C中只有scanf(),沒有scanf_s(),可是scanf()在讀取時不檢查邊界,因此可能會形成內存泄漏。因而Microsoft公司在VS編譯器中提供了scanf_s(),若是想繼續使用scanf這個不安全的函數,能夠經過如下方法解決。
安全
把scanf改爲:scanf_s函數
這是VS編譯器特有,既然以爲scanf()不安全,那它就本身定義了一個scanf_s()。工具
其實我是不推薦你們使用這種方法的,由於scanf_s它是vs編譯器特有的,也就是說它不具備跨平臺性/可移植性,在其餘編譯器上沒法識別運行
學習
編譯器錯誤提示的緣由至於VS中的SDL檢查,只須要找到它並關閉就能夠了。測試
關閉步驟:右鍵「項目文件」 —— 「屬性」 —— 「配置屬性」 ——「C/C++」——「常規」——「SDL檢查」改成「否」便可,如圖所示3d
改成否後,再次編譯就沒問題了。blog
在C語言程序開頭添加代碼:#pragma warning(disable:4996)內存
//所有關掉get
(或者)
在C語言程序開頭添加代碼:#pragma warning(once:4996)
//僅顯示一個
在C語言程序開頭添加代碼:#define _CRT_SECURE_NO_WARNINGS
//忽略安全檢測
每次都要加這麼一串代碼,是否是感受有點費力??(我一開始找到這種方法的時候第一感受也是這樣的)
其實不用那麼麻煩,這裏還能夠細分爲兩種方法:
(1)咱們只須要在VS中加入 _CRT_SECURE_NO_WARNINGS 這個宏就能夠了,具體操做以下圖所示:
(2)在VS2019的安裝路徑下找到「newc++file.cpp」這個文件,用記事本的方式打開,並把這行代碼複製粘貼上去,而後保存便可,這樣之後每次新建.c源文件的時候這行代碼就會自動出如今第一行。
【注意】若是在保存的時候出現「拒絕訪問」的狀況,能夠測試下載安裝一個工具「Notepad++」,而後以管理員的身份運行這個軟件,用這個軟件打開上面提到的「newc++file.cpp」文件,複製粘貼代碼上去後,保存便可。
最後提到的這兩種都是一次搞定,後面都不用再弄了。
我我的偏向於方法④的第(1)種方法。我也比較推薦你使用這種方法——畢竟簡單並且能夠說是一勞永逸