亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

VisualStudio2019解決scanf函數(shù)報(bào)錯(cuò)問(wèn)題

 更新時(shí)間:2023年08月14日 09:24:00   作者:Duck Bro  
在 Visual Studio 2019 編輯代碼時(shí),前期剛剛接觸到VS編譯器時(shí)存在的困惑,當(dāng)用scanf()函數(shù),進(jìn)行輸入時(shí),在運(yùn)行的時(shí)候編譯器會(huì)出現(xiàn)警告報(bào)錯(cuò),本文就來(lái)介紹一下解決方法

一、問(wèn)題由來(lái)

在 Visual Studio 2019 編輯代碼時(shí),前期剛剛接觸到VS編譯器時(shí)存在的困惑,當(dāng)用scanf()函數(shù),進(jìn)行輸入時(shí),在運(yùn)行的時(shí)候編譯器會(huì)出現(xiàn)警告報(bào)錯(cuò)。如下圖情況

二、為何會(huì)存在這個(gè)問(wèn)題

在Visual Studio 2019中,scanf函數(shù)會(huì)被標(biāo)記為不安全的函數(shù),因?yàn)樗鼪](méi)有檢查輸入緩沖區(qū)的大小。如果輸入緩沖區(qū)不夠大,scanf函數(shù)可能會(huì)導(dǎo)致緩沖區(qū)溢出,從而引發(fā)安全漏洞。

三、解決方法

方法1(scanf_s)不推薦

為了避免這個(gè)問(wèn)題, VS編譯器中可以使用scanf_s函數(shù)代替scanf。scanf_s函數(shù)具有相同的參數(shù)和行為,但添加了一個(gè)額外的參數(shù),用于指定輸入緩沖區(qū)的大小。例如,要讀取一個(gè)整數(shù),您可以這樣使用scanf_s函數(shù):

int num;
if (scanf_s("%d", &num) != 1) {
    // scanf_s失敗,處理錯(cuò)誤
}

注意:如果您還想使用scanf函數(shù)而不是scanf_s函數(shù),請(qǐng)?jiān)陧?xiàng)目的屬性中啟用“CrtSecureWarnings”選項(xiàng),該選項(xiàng)將禁用scanf函數(shù)的警告。 

方法2(#define _CRT_SECURE_NO_WARNINGS 1)推薦

在文件的最頂端輸入以下代碼

#define  _CRT_SECURE_NO_WARNINGS 1

注意一定得是文件最開(kāi)頭的地方 !!! 

因?yàn)樵诰幊虝r(shí)常常會(huì)使用到 scanf 函數(shù),為了解決每次編程時(shí)都需要在開(kāi)頭寫(xiě)這條會(huì)很繁瑣

以下是解決方法

在新建.c文件時(shí)自帶 #define _CRT_SECURE_NO_WARNINGS 1

先下載這個(gè)軟件 旁邊是 Everything官網(wǎng)地址

運(yùn)行Everything,在搜索框里查找這個(gè)文件 newc++file.cpp

右擊打開(kāi)路徑

復(fù)制該文件到桌面,用vs2019打開(kāi)進(jìn)行修改

將這段代碼 #define _CRT_SECURE_NO_WARNINGS 1 復(fù)制到文件中

將這個(gè)文件保存到步驟4.的路徑中,替換本來(lái)的文件

這樣就在新建文件時(shí),就有這行代碼啦

總結(jié)

在學(xué)習(xí)C語(yǔ)言的初期,經(jīng)常遇到scanf函數(shù)報(bào)錯(cuò)問(wèn)題,建議使用方法2,方法1的scanf_s是在VS編譯器中有,使用時(shí)如果在其他編譯器運(yùn)行時(shí)可能會(huì)出錯(cuò),所以建議使用方法2,#define _CRT_SECURE_NO_WARNINGS 1

到此這篇關(guān)于VisualStudio2019解決scanf函數(shù)報(bào)錯(cuò)問(wèn)題的文章就介紹到這了,更多相關(guān)VS2019 scanf報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論