VS中scanf為何會報錯詳解
發(fā)現(xiàn)問題
簡單來講,scanf會強行輸入內(nèi)容,所以是不安全的。
我們來看這樣的例子:
#include <iostream>
using namespace std;
int main()
{
char demo[3];
scanf("%s", demo);
return 0;
}
對于以上代碼,當(dāng)我們輸入字符不超過3時,程序可以正常運行,但當(dāng)我們輸入字符大于3,scanf仍將所有輸入字符存入數(shù)組,這顯然會導(dǎo)致數(shù)組的錯誤訪問,因此VS認為scanf是不安全的。
解決辦法
第一,我們可以使用scanf_s,它是VS提供的,但若使用它將意味著程序只能在VS編譯器運行,顯然是不合理的。
第二種方法是在程序開頭加上”#define _CRT_SECURE_NO_WARNINGS 1“

但是如果我們每次打開都需要輸入的話是比較麻煩的。因此,我們可以搜索new++file.cpp文件將該句子加到文件當(dāng)中,以后在創(chuàng)建新的程序時VS就會自動在開頭加上。
路徑參考:D:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems
找到文件后使用記事本打開并輸入”#define _CRT_SECURE_NO_WARNINGS 1“即可,如圖。

總結(jié)
到此這篇關(guān)于VS中scanf為何會報錯的文章就介紹到這了,更多相關(guān)VS中scanf報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++類模板實戰(zhàn)之vector容器的實現(xiàn)
本文我們將做一個類模板實戰(zhàn)-手寫精簡版vector容器。讓我們自己封裝一個數(shù)組類,可以適應(yīng)基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型,感興趣的可以了解一下2022-07-07
C語言使用普通循環(huán)方法和遞歸求斐波那契序列示例代碼
這篇文章主要介紹了C語言使用普通循環(huán)方法和遞歸求斐波那契序列示例代碼,大家參考使用吧2013-11-11

