欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

首先來看一段很簡單的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ù)

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

所以上面那段代碼在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個,程序運行結(jié)果就會出錯。scanf_s()函數(shù)的可變參數(shù)表里的10表示可以輸入9個字符,因為s[9]里要存放'\0'字符。

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

scanf() 函數(shù) :是標(biāo)準(zhǔn)格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的信息。其調(diào)用格式為:scanf("

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

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

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

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

解決方法一

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

解決方法二

點VS2019軟件上方的工具→打開項目→打開屬性頁→打開配置屬性→打開C/C++→在預(yù)處理器中添加_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;
}

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

相關(guān)文章

  • Matlab處理圖像后實現(xiàn)簡單的人臉檢測

    Matlab處理圖像后實現(xiàn)簡單的人臉檢測

    本文主要介紹一下如何使用matlab進(jìn)行圖像處理后實現(xiàn)人臉檢測,感興趣的可以了解一下
    2021-11-11
  • C語言實現(xiàn)電子郵件地址驗證程序

    C語言實現(xiàn)電子郵件地址驗證程序

    這篇文章主要介紹了C語言實現(xiàn)電子郵件地址驗證程序,利用的是POSIX正則表達(dá)式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-11-11
  • C?語言中布爾值的用法實戰(zhàn)案例

    C?語言中布爾值的用法實戰(zhàn)案例

    這篇文章主要為大家介紹了C語言中布爾值的用法實戰(zhàn)案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • C/C++代碼操作MySQL數(shù)據(jù)庫詳細(xì)步驟

    C/C++代碼操作MySQL數(shù)據(jù)庫詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于C/C++代碼操作MySQL數(shù)據(jù)庫的相關(guān)資料,通過文中的這些示例,我們可以連接到MySQL數(shù)據(jù)庫,并執(zhí)行常見的數(shù)據(jù)庫操作,如創(chuàng)建表、插入數(shù)據(jù)和查詢數(shù)據(jù),需要的朋友可以參考下
    2023-12-12
  • Qt5.9實現(xiàn)簡單復(fù)合圖形

    Qt5.9實現(xiàn)簡單復(fù)合圖形

    這篇文章主要為大家詳細(xì)介紹了Qt5.9實現(xiàn)簡單復(fù)合圖形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C/C++實現(xiàn)磁盤相關(guān)操作的示例代碼

    C/C++實現(xiàn)磁盤相關(guān)操作的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C/C++如何實現(xiàn)磁盤相關(guān)操作,例如遍歷磁盤容量、實現(xiàn)磁盤格式化、移除指定磁盤等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C語言代碼實現(xiàn)簡單2048游戲

    C語言代碼實現(xiàn)簡單2048游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)2048游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C語言實現(xiàn)三子棋小游戲

    C語言實現(xiàn)三子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例

    jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例

    這篇文章主要介紹了jQuery移動頁面開發(fā)中主題按鈕的設(shè)計示例,jQuery是當(dāng)今最具人氣的JavaScript開發(fā)類庫,需要的朋友可以參考下
    2015-12-12
  • C語言中常見的六種動態(tài)內(nèi)存錯誤總結(jié)

    C語言中常見的六種動態(tài)內(nèi)存錯誤總結(jié)

    學(xué)習(xí)過C語言中的動態(tài)內(nèi)存函數(shù),例如【malloc】、【calloc】、【realloc】、【free】,那它們在使用的過程中會碰到哪些問題呢,本本文我們一起來探討下,感興趣的朋友跟著小編一起來看看吧
    2023-11-11

最新評論