vs運(yùn)行時報C4996代碼錯誤的問題解決
問題產(chǎn)生
今天偶然用vs運(yùn)行一段C代碼時,程序報錯無法運(yùn)行,系統(tǒng)找不到指定文件。
簡單而言就是當(dāng)前項(xiàng)目的Debug文件中找不到該項(xiàng)目的可執(zhí)行文件.exe。
我先嘗試打開了該項(xiàng)目的屬性,查看了下該模式下所生成的可執(zhí)行文件的位置,發(fā)現(xiàn)存在該文件路徑啊。
然后我回到本地存儲的路徑,發(fā)現(xiàn)原來程序運(yùn)行根本就沒有生成.exe的可運(yùn)行文件。那肯定找不到.exe運(yùn)行文件啊。
然后去看程序報錯
問題原因
查資料后發(fā)現(xiàn),問題產(chǎn)生原因:
由于微軟在VS中不建議再使用C的傳統(tǒng)庫函數(shù)scanf,strcpy,sprintf等,所以直接使用這些庫函數(shù)會提示C4996錯誤。
VS建議采用帶_s的函數(shù),如scanf_s、strcpy_s,但這些并不是標(biāo)準(zhǔn)C函數(shù)。
解決方案:
方案一:
首先找到自己的項(xiàng)目,右鍵項(xiàng)目,選擇項(xiàng)目屬性,將SDL檢查關(guān)閉,如下圖就行。
這樣項(xiàng)目就可以直接運(yùn)行了。
方案二:
添加宏定義
//這個宏定義最好要放到.c文件的第一行, 二選一即可 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996)
這樣,程序也可以成功運(yùn)行起來了。
到此這篇關(guān)于vs運(yùn)行時報C4996代碼錯誤的問題解決的文章就介紹到這了,更多相關(guān)vs運(yùn)行時報C4996錯誤內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++?Boost?StringAlgorithms超詳細(xì)講解
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-11-11C語言通過gets和gets_s分別實(shí)現(xiàn)讀取含空格的字符串
在遇到包含空格的字符串輸入時該如何讀取呢?如果使用scanf以%s格式去讀取輸入的字符串,遇到空格就讀取結(jié)束了,顯然這樣是讀取不了的。本文就將介紹兩個可以對含空格字符串讀取的庫函數(shù)------gets和gets_s函數(shù),感興趣的可以了解一下2021-12-12