婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > VS2019提示scanf不安全問題的解決

VS2019提示scanf不安全問題的解決

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

VS2019提示scanf不安全問題

我們現在學的就是使用scanf()語句進行輸入,但是vs2019中卻報錯顯示不安全

首先我先來說一下scanf和scanf-s的區別

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

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

char buf[5]={'\0'};
scanf_s("%s",buf,5); //最多讀取4個字符,因為buf[4]要放'\0'
//如果輸入1234567890,則buf只會接受前4個字符

對于解決這個報錯問題有幾個解決辦法

1.最簡單粗暴的

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

2.在項目中進行屬性的更改

第一步:創建空項目
選擇創建新項目

選擇空項目進行創建

2.創建源文件

右擊

添加c++文件

3.更改屬性

右擊源.cpp

選擇屬性

此時常規中的SDL選項現實的是“是 (/sdl)”

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

此時雖然仍然會有警告出現,但是已經不影響程序的調試運行了,但是這個方法的缺點就是每一次創建新的c++文件的時候都要改一次屬性,比較麻煩。

第三個辦法:加宏

在最上面加上宏:

#define _CRT_SECURE_NO_WARNINGS 1

解除scanf的不安全問題;

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

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

標簽:鎮江 平頂山 綿陽 哈密 株洲 商丘 鶴崗 臺州

巨人網絡通訊聲明:本文標題《VS2019提示scanf不安全問題的解決》,本文關鍵詞  VS2019,提示,scanf,不安全,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《VS2019提示scanf不安全問題的解決》相關的同類信息!
  • 本頁收集關于VS2019提示scanf不安全問題的解決的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 岚皋县| 盐津县| 彭州市| 伊宁县| 景德镇市| 米泉市| 德庆县| 河池市| 民县| 丹棱县| 苗栗县| 洱源县| 神木县| 石河子市| 宜昌市| 曲周县| 博客| 桂平市| 二手房| 大港区| 白城市| 龙游县| 出国| 读书| 杂多县| 堆龙德庆县| 通海县| 吴旗县| 九江县| 北宁市| 阿坝县| 东光县| 瑞安市| 晋宁县| 泽普县| 德钦县| 壤塘县| 长海县| 嘉定区| 台中县| 孟村|