vs2022scanf報錯問題
大家下完vs2022之后,開心的寫下一段簡單的代碼:
#include <stdio.h>
#include <stdlib.h>int main()
{int a;scanf("%d", &a);printf("%d", a);return 0;
}
vs2022會毫不猶豫的報錯,下面是報錯信息:
翻譯過來就是vs2022認為我們使用的scanf不安全,它建議我們使用scanf_s
下面我就將代碼的scanf改為scanf_s
#include <stdio.h>
#include <stdlib.h>int main()
{int a;scanf_s("%d", &a);printf("%d", a);return 0;
}
使用完scanf_s后,果然一點問題都沒有
?
那么問題來了,難道我們以后都需要寫scanf_s才能完成編譯嗎?
假如我們導入一個項目到vs里面,需要一個個的把scanf_s進行修改嗎?
這里有一個更好的方法, 在我們文件開頭加上:#define _CRT_SECURE_NO_WARNINGS 1
加上之后,我們相當于無視了它的風險,可以正常使用scanf?
?下一步:找到newc++file.cpp文件,將#defnine _CRT_SECURE_NO_WARNINGS 1復制進去,這樣我們每次新建項目都會有這段代碼,省去了每次的人工添加.
這里我推薦Everything這個軟件,Everything是一款由Voidtools開發的Windows平臺下的快速文件搜索工具。它以其高效、簡潔和強大的文件索引和搜索能力而廣受用戶歡迎。
下載官網--下載 - voidtools
大家自行選擇版本下載安裝就好了
下載完成之后打開,搜索newc++file.cpp,找到vs2022中的文件
右擊打開路徑
?
注意:
這里我們不能直接在記事本中編輯,會爆出沒有權限的錯誤:
?
這里我們先拷貝一份到電腦桌面,完成編輯.
?
?保存退出之后,復制桌面文件,再返回vs2022newc++file.cpp文件的路徑下進行替換
替換成功后,我們新建一個項目就會有#define _CRT_SECURE_NO_WARNINGS 1? ? ?
?