vs運(yùn)行時(shí)報(bào)C4996代碼錯(cuò)誤的問(wèn)題解決
問(wèn)題產(chǎn)生
今天偶然用vs運(yùn)行一段C代碼時(shí),程序報(bào)錯(cuò)無(wú)法運(yùn)行,系統(tǒng)找不到指定文件。
簡(jiǎn)單而言就是當(dāng)前項(xiàng)目的Debug文件中找不到該項(xiàng)目的可執(zhí)行文件.exe。

我先嘗試打開(kāi)了該項(xiàng)目的屬性,查看了下該模式下所生成的可執(zhí)行文件的位置,發(fā)現(xiàn)存在該文件路徑啊。


然后我回到本地存儲(chǔ)的路徑,發(fā)現(xiàn)原來(lái)程序運(yùn)行根本就沒(méi)有生成.exe的可運(yùn)行文件。那肯定找不到.exe運(yùn)行文件啊。
然后去看程序報(bào)錯(cuò)

問(wèn)題原因
查資料后發(fā)現(xiàn),問(wèn)題產(chǎn)生原因:
由于微軟在VS中不建議再使用C的傳統(tǒng)庫(kù)函數(shù)scanf,strcpy,sprintf等,所以直接使用這些庫(kù)函數(shù)會(huì)提示C4996錯(cuò)誤。
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)行了。
方案二:
添加宏定義
//這個(gè)宏定義最好要放到.c文件的第一行, 二選一即可 #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996)

這樣,程序也可以成功運(yùn)行起來(lái)了。
到此這篇關(guān)于vs運(yùn)行時(shí)報(bào)C4996代碼錯(cuò)誤的問(wèn)題解決的文章就介紹到這了,更多相關(guān)vs運(yùn)行時(shí)報(bào)C4996錯(cuò)誤內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++?Boost?StringAlgorithms超詳細(xì)講解
Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱2022-11-11
淺談C語(yǔ)言編程中的布爾bool數(shù)據(jù)類(lèi)型
這篇文章主要介紹了C語(yǔ)言編程中的布爾bool數(shù)據(jù)類(lèi)型,bool并不是需要通過(guò)C++才能使用的,需要的朋友可以參考下2015-11-11
C語(yǔ)言通過(guò)gets和gets_s分別實(shí)現(xiàn)讀取含空格的字符串
在遇到包含空格的字符串輸入時(shí)該如何讀取呢?如果使用scanf以%s格式去讀取輸入的字符串,遇到空格就讀取結(jié)束了,顯然這樣是讀取不了的。本文就將介紹兩個(gè)可以對(duì)含空格字符串讀取的庫(kù)函數(shù)------gets和gets_s函數(shù),感興趣的可以了解一下2021-12-12
c++ 隨機(jī)數(shù)問(wèn)題的相關(guān)研究
這篇文章主要介紹了c++ 隨機(jī)數(shù)問(wèn)題的相關(guān)研究,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下2021-03-03

