目錄
【前言】
一、scanf報(bào)錯(cuò)示例
二、解決使用scanf報(bào)錯(cuò)的方法
解決方法1(不推薦)
解決方法2(不推薦)
解決方法3(強(qiáng)烈推薦)
第一步
第二步
第三步
三、效果演示(方法三)
【最后】
- ??個(gè)人主頁(yè):庫(kù)庫(kù)的里昂
- ???CSDN新晉作者
- ???歡迎 ??點(diǎn)贊?評(píng)論?收藏
- ???其他專欄:代碼小游戲、C語(yǔ)言初階
- ???收錄專欄:編程小白
- ???希望作者的文章能對(duì)你有所幫助,有不足的地方請(qǐng)?jiān)谠u(píng)論區(qū)留言指正,大家一起學(xué)習(xí)交流!??
【前言】
- 寶子們好呀!在上一篇文章中教大家任何安裝完成Visual Studio 2022,還沒(méi)有安裝的朋友們可以到這里來(lái)看一下呀:Visual Studio 2022下載安裝教程
- 安裝完成后,很多新手小白在使用Visual Studio 2022編譯器的過(guò)程中使用到scanf后會(huì)出現(xiàn)報(bào)錯(cuò)的情況,也不知道如果改正,所以今天我就來(lái)給大家分享解決這個(gè)問(wèn)題的辦法。
一、scanf報(bào)錯(cuò)示例
我們?cè)?/strong>Visual Studio 2022里面使用scanf是不是出現(xiàn)過(guò)這樣的錯(cuò)誤,其實(shí)是因?yàn)?/strong>Visual Studio 2022這個(gè)編譯器并不是完全按照C語(yǔ)言的標(biāo)準(zhǔn)來(lái)的!
我們輸入一個(gè)簡(jiǎn)單的程序
代碼示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf("^%d", &a);
printf("%d", a);
return 0;
}
結(jié)果報(bào)錯(cuò):
????
圖中顯示:
'scanf': This function or variable may be unsafe. Consider using scanf_?s instead.To disable deprecation, use_CRT_SECURE_NO_WARNINGS. See online help for details.
意思就是
scanf:
- 此函數(shù)或變量可能不安全。請(qǐng)考慮改用scanf_s。
- 禁用不建議使用,請(qǐng)使用_CRT_SECURE_NO_WARNINGS。
所以說(shuō)錯(cuò)誤出現(xiàn)在scanf身上,下面我們來(lái)看解決辦法
二、解決使用scanf報(bào)錯(cuò)的方法
現(xiàn)在網(wǎng)上常見(jiàn)的幾種解決 scanf 函數(shù)不安全問(wèn)題的方法有3種,下面我來(lái)一 一介紹。
解決方法1(不推薦)
根據(jù)報(bào)錯(cuò)提示將scanf函數(shù)替換成scanf_s即可
代碼示例:
#include<stdio.h>
int main()
{
int a = 0;
scanf_s("%d", &a);
printf("%d", a);
return 0;
}
代碼結(jié)果:
??
我們可以看到scanf這個(gè)問(wèn)題解決了,但是因?yàn)?/strong>scanf_s這個(gè)函數(shù)是VS提供的,其它編譯器沒(méi)有。所以說(shuō),如果你在代碼中使用了scanf_s函數(shù),代碼就不跨平臺(tái)了(即沒(méi)有了可移植性),所以并不推薦大家使用這種方法。
解決方法2(不推薦)
在使用scanf函數(shù)的.c文件的第一行加入?
代碼示例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d", a);
return 0;
}
代碼結(jié)果:
??
我們可以看到scanf這個(gè)問(wèn)題解決了
注意:
- define與_CRT_SECURE_NO_WARNINGS之間要有空格,不然依舊會(huì)出錯(cuò)。
- 添加的這行代碼一定要放在.c文件的第一行,一定要放在.c文件的第一行,一定要放在.c文件的第一行(重要的事情說(shuō)三遍)。
?我們可以看到scanf這個(gè)問(wèn)題解決了,但是使用這種方法,每個(gè).c源文件都需要手動(dòng)添加,比較麻煩,所以并不推薦大家使用這種方法。
解決方法3(強(qiáng)烈推薦)
第一步
在電腦中找到 “newc++file.cpp” 文件。
路徑:C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems
??
考慮到很多同學(xué)放的位置不一樣,這里我推薦同學(xué)下載一個(gè)軟件, “Everything”,這個(gè)軟件可以幫助大家迅速找到你電腦中的任何文件,在許多時(shí)候都十分有用。
?打開(kāi)Everything,輸入newc++file.cpp,再查看代碼路徑
??
第二步
把此文件復(fù)制粘貼到桌面上,然后打開(kāi)它,在里面加上
“#define _CRT_SECURE_NO_WARNINGS 1” ,然后保存退出。
??
??
??
????
??
第三步
把桌面上修改過(guò)后的文件保存下來(lái),到 “newc++file.cpp” 文件路徑下粘貼上去,然后點(diǎn)擊“替換目標(biāo)中的文件”,就大功告成了。
??
??
注:把 “newc++file.cpp” 文件復(fù)制粘貼到桌面上在修改其中內(nèi)容然后在替換原文件的原因是:如果我們直接修改 “newc++file.cpp” 文件中的內(nèi)容,系統(tǒng)會(huì)向我們索要管理員權(quán)限,而上面的方法則不會(huì)。
三、效果演示(方法三)
我們?nèi)我庑陆ㄒ粋€(gè).c文件,查看是否會(huì)有這么一段代碼
??
??
??
OK,果然有這么一段代碼,至此我們的問(wèn)題就完全解決了!??????
【最后】
到這里我們的Visual Studio 2022就可以正常使用了,有任何問(wèn)題都可以在評(píng)論區(qū)留言或者直接私信我,我會(huì)一 一解答大家的問(wèn)題,希望這篇文章對(duì)你有幫助。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-653052.html
??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-653052.html
到了這里,關(guān)于Visual Studio 2022 中解決使用scanf報(bào)錯(cuò)的方法(一勞永逸)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!