解決VS2017/2019 使用scanf、printf等函數【不安全報錯】問題

報錯原因:

使用scanf,printf讀寫字符串的時候,會出現越界的情況。

比如,你定義了一個char [5]的字符串,但你卻用scanf輸入了一個20長度的字符串, 依然能輸入成功,超出的部分就會越界覆蓋不屬於自己的數據。printf也類似,它是因爲C風格的字符串以'\0'爲終止字符,如果字符串中不存在‘\0’,它也會越界輸出到‘\0’。

解決方案:

方案一:使用printf_s....等函數替換,增加一個長度控制參數。

方案二:關閉編譯器的SDL檢查。

在解決方案資源管理器中鼠標右鍵項目——屬性——C/C++——常規——SDL檢查——改爲否。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章