最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解VS2019使用scanf()函數(shù)報錯的解決方法

 更新時間:2022年01月24日 10:48:51   作者:vbnetcx  
本文主要介紹了詳解VS2019使用scanf()函數(shù)報錯的解決方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

首先來看一段很簡單的C語言代碼

#include<stdio.h>
int main(void)
{
    char s[10];
    scanf("%s",s);
    printf("%s",s);
    return 0;
}

這段代碼的作用就是輸入一個字符串,再把這個字符串輸出。在其他IDE(集成開發(fā)環(huán)境)上,是完全可以運行的,但是在Microsoft Visual Studio(美國微軟公司開發(fā)的可視化編程開發(fā)軟件)的系列軟件上(從Microsoft Visual C++ 2005開始),Microsoft Visual Studio系列軟件直接使用scanf()函數(shù)會報錯,但是也提供了一個叫scanf_s()新格式化輸入函數(shù)。

scanf_s()函數(shù)

在調用scanf_s()函數(shù)時,必須在可變參數(shù)表中提供一個數(shù)字來表明最多讀取多少個字節(jié)的字符,另外很多額外帶_s后綴的函數(shù)是為了讓原版函數(shù)更安全,傳入一個和參數(shù)有關的大小值,避免訪問到不存在的元素。

所以上面那段代碼在VS2019里要這樣寫:

#include<stdio.h>
int main()
{
    char s[10];
    scanf_s("%s",s,10);
    printf("%s",s);
    return 0;
}

scanf_s("%s", a,10);表示用戶最多可以最多輸入9個字符,這種情況程序可以正常編譯運行,如果用戶輸入字符超過9個,程序運行結果就會出錯。scanf_s()函數(shù)的可變參數(shù)表里的10表示可以輸入9個字符,因為s[9]里要存放'\0'字符。

scanf_s()函數(shù)與scanf()函數(shù)的區(qū)別

scanf() 函數(shù) :是標準格式化輸入函數(shù),它從標準輸入設備(鍵盤)讀取輸入的信息。其調用格式為:scanf("

scanf_s()函數(shù):是針對scanf()函數(shù)在讀取字符串時不檢查邊界,可能會造成內存泄露這個問題設計的。scanf_s()函數(shù)用于讀取字符串時,必須提供一個數(shù)字以表明最多讀取多少位字符,以防止溢出。

scanf()函數(shù)和scanf_s()函數(shù)在整數(shù)、浮點數(shù)、單個字符等輸入情況下基本功能相同。 兩者的主要區(qū)別在于字符串的輸入。

VS2019使用scanf()函數(shù)報錯的解決方法

如果我們在VS2019環(huán)境下直接使用scanf()函數(shù),程序會產生以下報錯:

解決方法一

使用scanf_s()函數(shù)來代替scanf()函數(shù)。

解決方法二

點VS2019軟件上方的工具→打開項目→打開屬性頁→打開配置屬性→打開C/C++→在預處理器中添加_CRT_SECURE_NO_WARNINGS,點擊確定。

%K%4P4CO3_6B(4Z$LOFQ55R.png

JCXLH7]A9J81XDMUG8RI5VV.png

解決方法三

在代碼最最上面加入一句宏定義:#define _CRT_SECURE_NO_WARNINGS。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    char s[10];
    scanf("%s",s);
    printf("%s",s);
    return 0;
}

解決方法四

在代碼最最上面加入一句代碼:#pragma warning(disable:4996),作用是忽略此警告

#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
	char s[10];
	scanf("%s", s);
	printf("%s",s);
	return 0;
}

到此這篇關于詳解VS2019使用scanf()函數(shù)報錯的解決方法的文章就介紹到這了,更多相關VS2019 scanf()報錯內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 深度探究C++中的函數(shù)重載的用法

    深度探究C++中的函數(shù)重載的用法

    這篇文章主要介紹了C++中的函數(shù)重載用法,包括重載時參數(shù)類型的差異以及匹配和轉換等方面問題的講解,需要的朋友可以參考下
    2016-01-01
  • linux下實現(xiàn)的2048游戲示例分享

    linux下實現(xiàn)的2048游戲示例分享

    這篇文章主要介紹了linux下實現(xiàn)的2048游戲示例,需要的朋友可以參考下
    2014-04-04
  • C++實現(xiàn)線程池的簡單方法示例

    C++實現(xiàn)線程池的簡單方法示例

    這篇文章主要給大家介紹了關于C++實現(xiàn)線程池的簡單方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • C++實現(xiàn)位圖排序實例

    C++實現(xiàn)位圖排序實例

    這篇文章主要介紹了C++實現(xiàn)位圖排序,是比較重要的排序算法,需要的朋友可以參考下
    2014-08-08
  • FFmpeg中avfilter模塊的介紹與使用

    FFmpeg中avfilter模塊的介紹與使用

    FFmpeg中的libavfilter模塊(或庫)用于filter(過濾器),?filter可以有多個輸入和多個輸出,下面就跟隨小編一起簡單學習一下它的巨日使用吧
    2023-08-08
  • C++中std::tuple和std::pair的實現(xiàn)

    C++中std::tuple和std::pair的實現(xiàn)

    std::tuple和std::pair是兩種極具實用性的數(shù)據結構,本文主要介紹了C++中std::tuple和std::pair的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • C++基本算法思想之遞推算法思想

    C++基本算法思想之遞推算法思想

    遞推算法需要用戶知道答案和問題之間的邏輯關系。在許多數(shù)學問題中,都有明確的計算公式可以遵循,因此可以采用遞推算法來實現(xiàn)
    2013-10-10
  • C語言使用rand函數(shù)生成隨機數(shù)

    C語言使用rand函數(shù)生成隨機數(shù)

    這篇文章介紹了C語言使用rand函數(shù)生成隨機數(shù)的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • C++實現(xiàn)發(fā)送郵件和附件功能

    C++實現(xiàn)發(fā)送郵件和附件功能

    這篇文章主要為大家詳細介紹了C++實現(xiàn)發(fā)送郵件和附件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • C++基于easyx圖形庫實現(xiàn)打磚塊游戲

    C++基于easyx圖形庫實現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細介紹了C++基于easyx圖形庫實現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論

康平县| 慈利县| 兰州市| 宜章县| 漾濞| 盱眙县| 林西县| 新乐市| 定南县| 河东区| 新津县| 枝江市| 阿荣旗| 宾川县| 韶山市| 泽普县| 甘洛县| 勃利县| 会理县| 天台县| 乌什县| 泗水县| 铜梁县| 鄂伦春自治旗| 凤城市| 山阴县| 正阳县| 华蓥市| 榆树市| 巫溪县| 三台县| 黔江区| 井研县| 东方市| 南乐县| 弥渡县| 延川县| 德庆县| 钦州市| 枣强县| 乌鲁木齐县|