溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VS中scanf報錯的原因是什么

發(fā)布時間:2023-02-24 14:55:05 來源:億速云 閱讀:125 作者:iii 欄目:開發(fā)技術

本文小編為大家詳細介紹“VS中scanf報錯的原因是什么”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“VS中scanf報錯的原因是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

發(fā)現(xiàn)問題 

簡單來講,scanf會強行輸入內容,所以是不安全的。

我們來看這樣的例子:

#include <iostream>
using namespace std;

int main()
{
	char demo[3];
	scanf("%s", demo);
	return 0;
}

對于以上代碼,當我們輸入字符不超過3時,程序可以正常運行,但當我們輸入字符大于3,scanf仍將所有輸入字符存入數(shù)組,這顯然會導致數(shù)組的錯誤訪問,因此VS認為scanf是不安全的。

解決辦法

第一,我們可以使用scanf_s,它是VS提供的,但若使用它將意味著程序只能在VS編譯器運行,顯然是不合理的。

第二種方法是在程序開頭加上”#define _CRT_SECURE_NO_WARNINGS 1“

VS中scanf報錯的原因是什么

但是如果我們每次打開都需要輸入的話是比較麻煩的。因此,我們可以搜索new++file.cpp文件將該句子加到文件當中,以后在創(chuàng)建新的程序時VS就會自動在開頭加上。

路徑參考:D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems

找到文件后使用記事本打開并輸入”#define _CRT_SECURE_NO_WARNINGS 1“即可,如圖。

VS中scanf報錯的原因是什么

讀到這里,這篇“VS中scanf報錯的原因是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI