VS中scanf函數(shù)報(bào)錯(cuò)問題的幾種解決方法
引言:
相信很多小伙伴在第一次使用scanf函數(shù)時(shí)大概率會(huì)遇到系統(tǒng)報(bào)錯(cuò)的問題(如下圖所示)。翻譯過來就是:“scanf這個(gè)函數(shù)或者變量可能不安全 ,考慮使用scanf_s替換,如果想讓報(bào)錯(cuò)失效的話,請(qǐng)使用 _CRT_SECURE_NO_WARNINGS”。但這個(gè)報(bào)錯(cuò)只針對(duì)VS編譯器,因?yàn)閂S比較嚴(yán)謹(jǐn),其它編譯器不會(huì)出現(xiàn)這種情況。
那么這個(gè)時(shí)候我們?cè)撛趺崔k呢?接下來我就將解決這個(gè)問題的幾種方法一一列舉出來,有需求的小伙伴可以參考一下。
方法一:
根據(jù)報(bào)錯(cuò)提示將scanf函數(shù)替換成scanf_s即可。但是因?yàn)閟canf_s這個(gè)函數(shù)是VS提供的,其它編譯器沒有。所以說,如果你在代碼中使用了scanf_s函數(shù),代碼就不跨平臺(tái)了(即沒有了可移植性),所以并不推薦大家使用這種方法。
方法二:
在使用scanf函數(shù)的.c文件的第一行加入 #define _CRT_SECURE_NO_WARNINGS
正確示范:
錯(cuò)誤示范:
注意:1.define與_CRT_SECURE_NO_WARNINGS之間要有空格,不然依舊會(huì)出錯(cuò)。
2.添加的這行代碼一定要放在.c文件的第一行,一定要放在.c文件的第一行,一定要放在.c文件的第一行(重要的事情說三遍)。
缺陷:使用這種方法,每個(gè).c源文件都需要手動(dòng)添加,比較麻煩。
方法三:
讓某一個(gè)警告或者錯(cuò)誤失效,我們可以看到這個(gè).c文件錯(cuò)誤碼的編號(hào)叫4996。
可以在程序的開頭加入這樣一行代碼? #pragma warning(disable:4996) ,這樣系統(tǒng)就不會(huì)再有報(bào)錯(cuò)信息啦!
注: 這種方法只適用于這個(gè)工程,只針對(duì)這個(gè)錯(cuò)誤碼來解決報(bào)錯(cuò),不夠一勞永逸。
方法四:(?強(qiáng)烈推薦這種方法,絕對(duì)的一勞永逸)
在VS中有一個(gè)文件? newc++file.cpp,找到這個(gè)文件,在這個(gè)文件中加入 #define _CRT_SECURE_NO_WARNINGS,以后新建的.c文件中自動(dòng)就會(huì)有這一行代碼。
具體步驟如下:
1.打開文件資源管理器,找到你的VS安裝路徑,里面有個(gè) newc++file.cpp文件
2.將 newc++file.cpp文件拷貝(Ctrl+c)一份,復(fù)制(Ctrl+v)到桌面
3.在桌面上將文件用記事本打開
4.將 #define _CRT_SECURE_NO_WARNINGS輸入到記事本后保存退出
5.將改完后的文件拷貝到原來的位置,替換掉以前的文件,下次再創(chuàng)建新的源文件時(shí)就會(huì)自動(dòng)寫入#define _CRT_SECURE_NO_WARNINGS
到此這篇關(guān)于VS中scanf函數(shù)報(bào)錯(cuò)問題的幾種解決方法的文章就介紹到這了,更多相關(guān)VS scanf函數(shù)報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
圖解C++的STL之stack和queue,輕松理解數(shù)據(jù)結(jié)構(gòu)
聚焦?C++?的?STL?中的?stack?和?queue,讓數(shù)據(jù)結(jié)構(gòu)變得簡(jiǎn)單有趣!?通過圖解的方式,我們將輕松理解這兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu),準(zhǔn)備好開啟?STL?學(xué)習(xí)之旅了嗎?讓我們一起探索?stack?和?queue?的奧秘吧!2024-03-03C++如何調(diào)用簡(jiǎn)單的python程序
這篇文章主要介紹了C++如何調(diào)用簡(jiǎn)單的python程序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02C++跳轉(zhuǎn)語(yǔ)句之Goto對(duì)變量定義的影響詳解
goto語(yǔ)句也被稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,這篇文章主要介紹了C++跳轉(zhuǎn)語(yǔ)句之Goto對(duì)變量定義的影響,文中通過示例代碼解文字介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2016-11-11C++中拷貝構(gòu)造函數(shù)的應(yīng)用詳解
這篇文章主要介紹了C++中拷貝構(gòu)造函數(shù)的應(yīng)用,需要的朋友可以參考下2014-07-07C++實(shí)現(xiàn)基數(shù)排序的方法詳解
本篇文章是對(duì)使用C++實(shí)現(xiàn)基數(shù)排序的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Qt跨平臺(tái)窗口選擇功能的實(shí)現(xiàn)過程
很多時(shí)候?yàn)榱朔奖丬浖氖褂?我們需要讓編寫的界面程序顯示在最上層,這時(shí)候就需要對(duì)窗口屬性進(jìn)行調(diào)整,下面這篇文章主要給大家介紹了關(guān)于Qt跨平臺(tái)窗口選擇功能的實(shí)現(xiàn)過程,需要的朋友可以參考下2022-12-12