主頁(yè) > 知識(shí)庫(kù) > VS2019提示scanf不安全問(wèn)題的解決

VS2019提示scanf不安全問(wèn)題的解決

熱門標(biāo)簽:廊坊地圖標(biāo)注申請(qǐng)入口 地圖標(biāo)注資源分享注冊(cè) 海南人工外呼系統(tǒng)哪家好 合肥阿里辦理400電話號(hào) 北京外呼系統(tǒng)咨詢電話 高德地圖標(biāo)注公司位置需要錢嗎 襄陽(yáng)外呼增值業(yè)務(wù)線路解決方案 慶陽(yáng)外呼系統(tǒng)定制開發(fā) 怎么去掉地圖標(biāo)注文字

VS2019提示scanf不安全問(wèn)題

我們現(xiàn)在學(xué)的就是使用scanf()語(yǔ)句進(jìn)行輸入,但是vs2019中卻報(bào)錯(cuò)顯示不安全

首先我先來(lái)說(shuō)一下scanf和scanf-s的區(qū)別

  • scanf()函數(shù)是標(biāo)準(zhǔn)C中提供的標(biāo)準(zhǔn)輸入函數(shù),用以用戶輸入數(shù)據(jù)
  • scanf_s()函數(shù)是Microsoft公司VS開發(fā)工具提供的一個(gè)功能相同的安全標(biāo)準(zhǔn)輸入函數(shù),從vc++2005開始,VS系統(tǒng)提供了scanf_s()。在調(diào)用該函數(shù)時(shí),必須提供一個(gè)數(shù)字以表明最多讀取多少位字符。
  • scanf()在讀取數(shù)據(jù)時(shí)不檢查邊界,所以可能會(huì)造成內(nèi)存訪問(wèn)越界
//例如:分配了5字節(jié)的空間但是用戶輸入了10字節(jié),就會(huì)導(dǎo)致scanf()讀到10個(gè)字節(jié)
char buf[5]={'\0'};
scanf("%s", buf);
//如果輸入1234567890,則5以后的部分會(huì)被寫到別的變量所在的空間上去,從而可能會(huì)導(dǎo)致程序運(yùn)行異常。

以上代碼如果用scanf_s()則可避免此問(wèn)題:

char buf[5]={'\0'};
scanf_s("%s",buf,5); //最多讀取4個(gè)字符,因?yàn)閎uf[4]要放'\0'
//如果輸入1234567890,則buf只會(huì)接受前4個(gè)字符

對(duì)于解決這個(gè)報(bào)錯(cuò)問(wèn)題有幾個(gè)解決辦法

1.最簡(jiǎn)單粗暴的

在使用vs2019時(shí)記住每次寫scanf時(shí)全都寫成scanf-s

2.在項(xiàng)目中進(jìn)行屬性的更改

第一步:創(chuàng)建空項(xiàng)目
選擇創(chuàng)建新項(xiàng)目

選擇空項(xiàng)目進(jìn)行創(chuàng)建

2.創(chuàng)建源文件

右擊

添加c++文件

3.更改屬性

右擊源.cpp

選擇屬性

此時(shí)常規(guī)中的SDL選項(xiàng)現(xiàn)實(shí)的是“是 (/sdl)”

將此處改為“否 (/sdl-)”并確認(rèn)即可

此時(shí)雖然仍然會(huì)有警告出現(xiàn),但是已經(jīng)不影響程序的調(diào)試運(yùn)行了,但是這個(gè)方法的缺點(diǎn)就是每一次創(chuàng)建新的c++文件的時(shí)候都要改一次屬性,比較麻煩。

第三個(gè)辦法:加宏

在最上面加上宏:

#define _CRT_SECURE_NO_WARNINGS 1

解除scanf的不安全問(wèn)題;

到此這篇關(guān)于VS2019提示scanf不安全問(wèn)題的解決的文章就介紹到這了,更多相關(guān)VS2019 scanf不安全內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • VS2019中scanf返回值被忽略的問(wèn)題及其解決方法

標(biāo)簽:鎮(zhèn)江 平頂山 綿陽(yáng) 哈密 株洲 商丘 鶴崗 臺(tái)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VS2019提示scanf不安全問(wèn)題的解決》,本文關(guān)鍵詞  VS2019,提示,scanf,不安全,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《VS2019提示scanf不安全問(wèn)題的解決》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于VS2019提示scanf不安全問(wèn)題的解決的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章