日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

VS中scanf為何會報錯詳解_C 語言

作者:老明l ? 更新時間: 2023-05-24 編程語言

發(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認(rèn)為scanf是不安全的。

解決辦法

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

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

請?zhí)砑訄D片描述

但是如果我們每次打開都需要輸入的話是比較麻煩的。因此,我們可以搜索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“即可,如圖。

請?zhí)砑訄D片描述

總結(jié)?

原文鏈接:https://blog.csdn.net/changxiabb/article/details/129060793

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新