欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Visual Studio中scanf函數(shù)報錯的幾種解決方法

 更新時間:2025年03月19日 09:18:05   作者:Gyongshu  
本文主要介紹了Visual Studio中scanf函數(shù)報錯的幾種解決方法,文中通過圖文示例介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一.選擇VS的原因

俗話說:“工欲善其事必先利其器”,有一個好的工具往往可以極大的幫助我們更好的去解決我們的事情。VS是(Visual Studio)的縮寫,它是微軟公司旗下的一種全面的集成開發(fā)環(huán)境 (IDE)。我們知道C語?是??編譯型的計算機語?,需要依賴編譯器將計算機語?轉(zhuǎn)換成機器能夠執(zhí)?的機器指令;所以在學(xué)習(xí)工具上的選擇還是比較重要的。VS里集成了msvc編譯器,集代碼編寫功能、分析功能、編譯功能、調(diào)試功能等諸多功能于一體。我選擇的是vs2022的版本,下面我來講講緣由:

優(yōu)點:

  • 免費!VS為個人用戶提供了免費的社區(qū)版本,可以減少學(xué)習(xí)成本。
  • VS是主流的集成開發(fā)環(huán)境,背靠大廠軟件的維護這些的都較好;并且在企業(yè)中使?也較為普遍。
  • 對新手友好,不用自己去搭建環(huán)境,直接安裝即可使?,基本不?額外配置環(huán)境;并且默認界面是中文的。
  • VS包含了編輯器+編譯器+調(diào)試器,功能強?;并且可以調(diào)整我們寫出的代碼格式,有助于我們養(yǎng)成寫出好看的代碼格式。

缺點:

  • 功能豐富導(dǎo)致安裝包較大,比較占用內(nèi)存。

魚與熊掌不能兼得,所有東西都會有自己的缺點;我們在權(quán)衡利弊之后能夠接受他的缺點,那我們便可以大膽的去選擇他!

二.scanf函數(shù)報錯的原因

幾乎在所有的VS版本中,在使用scanf這個函數(shù)時都會報錯;那為什么會報錯呢?報的是一個什么樣的錯誤呢?下面我們一塊來看看:

我們在VS中正常使用scanf這個函數(shù)時幾乎會都會出現(xiàn)這么一個錯誤:

那究竟是為什么呢?我們把這個報錯的信息拿出來看看:

這個大概的意思呢是:VS覺得scanf這個函數(shù)可能不安全,讓我們考慮使用scanf_s這個函數(shù),如果要棄用這個警告,讓我們需要使用(_CRT_SECURE_NO_WARNINGS)。這樣一看,那解決這個錯誤的方法就有兩種了。后面再給大家講這兩種方法,這里我們先來看看VS為什么會覺得scanf這個函數(shù)不安全。

scanf函數(shù)在使用%s這個占位符的時候呢,可能會存在潛在問題;scanf函數(shù)在將字符串讀?字符數(shù)組時,不會檢測字符串是否超過了數(shù)組?度。在儲存字符串時, 很可能會超過數(shù)組的邊界,這將會導(dǎo)致預(yù)想不到的結(jié)果。

我們發(fā)現(xiàn)雖然輸出了我們從鍵盤輸入的內(nèi)容,但是又報了另外的錯誤;那么這個又是什么錯誤呢?這是一個調(diào)試錯誤,告訴我們說運行時檢查失敗了,這個變量“ch”周圍的堆棧以損壞。那原因又是什么呢?其實就是儲存這個字符串的時候超過了數(shù)組設(shè)定的邊界,ch數(shù)組只能儲存5個字符,而我們輸入了7個字符;超過了這個邊界造成了堆棧的損壞。由于scanf函數(shù)默認不會檢測字符串是否超過了數(shù)組?度,所以VS認為scanf這個函數(shù)可能會不安全,存在有潛在的隱患。

三.解決方法

1.采用scanf_s函數(shù)(不建議?。?/h3>

為什么不建議使用scanf_s這個函數(shù)呢?因為這個scanf_s這個函數(shù)的使用方式跟scanf函數(shù)不完全一致,如果不了解scanf_s這個函數(shù)就使用可能會導(dǎo)致出現(xiàn)更多的錯誤!如果想使用scanf_s函數(shù)就需要去了解好這個函數(shù)具體的使用方法,這里并不是直接將scanf改成scanf_s就完事了。直接改成scanf_s或許可以解決當(dāng)前的問題,但并不能代表可以解決后面遇到的其他問題,這就會存在潛在的問題;并且使用scanf_s后可能會導(dǎo)致你的代碼放到其他編譯器下編譯不過去的問題。綜上所以這里不建議大家采用這種方法。

2.一勞永逸的方法

VS給的建議里面還有另外一種方法,就是使用這個(_CRT_SECURE_NO_WARNINGS),那這個該怎樣來用呢?這里需要用到#define;是用來定義符號用的。

我們只需要將(#define _CRT_SECURE_NO_WARNINGS)寫在我們創(chuàng)建的源文件(.c文件和.cpp文件)的第一行就能解決這個問題。

這樣即可!

那么這樣不是每次都得要在第一行加上這個里面?說好的一勞永逸的辦法呢?不用著急,接下來就給大家講這個一勞永逸的辦法!其實我們創(chuàng)建源文是從一個叫(newc++file.cpp)這個文件拷貝過來的我們只需要找到這個文件,用記事本打開它,并在里面加上 #define_CRT_SECURE_NO_WARNINGS 這句話,然后保存即可達到一勞永逸的目的。具體步奏我們仔細來看看:

  • 首先我們找到newc++file.cpp這個文件,這里給大家推薦一個軟件叫Everthing,是一個用來找文件用的軟件,可以幫我們快速找到需要的文件,大家在找的時候記得一定要認準(zhǔn)官網(wǎng),這是個免費的軟件,如找的需要付費的就是找錯了建議卸載了重新再找?。?strong>如果電腦里裝了多個版本的VS的軟件,記得一定要選擇對應(yīng)版本的newc++file.cpp文件)

  • 然后我們復(fù)制一份到放到桌面,為什么要放到桌面呢?直接在這里打開加上這句話不可以嗎?如果直接在這里加會保存不了;因為權(quán)限不夠,桌面的權(quán)限更高放在桌面去添加這句話便能正常保存!

  • 然后我們在使用記事本打開newc++file.cpp這個文件,里面應(yīng)該是空白的;我們把#define _CRT_SECURE_NO_WARNINGS這句話加進去,記得點保存。然后我們在從桌面復(fù)制這個文件到我們在開始找到newc++file.cpp這個文件的位置;在這里替換掉這個newc++file.cpp文件。就成功完成了!

  • 注意事項切記不能弄丟了newc++file.cpp這個文件!否則會在創(chuàng)建源文件時沒有C++文件(.cpp)這個選項。

就是會沒有這個選項:

  • 并且我們在創(chuàng)建源文件時需要不能在緊湊視圖界面里創(chuàng)建源文件,否則也不能到的我們需要的需求。

緊湊視圖為這樣:(不能在此創(chuàng)建源文件,不然達不到我們需要的效果)

需要在這個界面中新建源文件才能達到效果:

到這里就完啦!你學(xué)會了這個方法嗎?如果有正在被這個問題困擾的朋友可以去試試,保證真實有效哦。

到此這篇關(guān)于Visual Studio中scanf函數(shù)報錯的幾種解決方法的文章就介紹到這了,更多相關(guān)Visual Studio scanf函數(shù)報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 構(gòu)造雙向鏈表的實現(xiàn)代碼

    C++ 構(gòu)造雙向鏈表的實現(xiàn)代碼

    本篇文章是對C++中構(gòu)造雙向鏈表的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Qt 使用Poppler實現(xiàn)pdf閱讀器的示例代碼

    Qt 使用Poppler實現(xiàn)pdf閱讀器的示例代碼

    下面小編就為大家分享一篇Qt 使用Poppler實現(xiàn)pdf閱讀器的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 將?C++?類型屬性暴露給?QML

    將?C++?類型屬性暴露給?QML

    這篇文章主要介紹了將?C++?類型屬性暴露給?QML,?QML?是一種基于?JavaScript?的聲明式語言。在?Qt5中,QML有了長足進步,并且同?C++?并列成為?Qt?的首選編程語言下面一起進入文章學(xué)習(xí)?QML的條件下也看看如何將將?C++?類型屬性暴露給?QML,需要的朋友可以參考一下
    2021-12-12
  • C/C++產(chǎn)生隨機數(shù)函數(shù)簡單介紹

    C/C++產(chǎn)生隨機數(shù)函數(shù)簡單介紹

    這篇文章主要為大家詳細介紹了C/C++產(chǎn)生隨機數(shù)函數(shù)的實現(xiàn)方法,如何使用C/C++產(chǎn)生隨機數(shù)函數(shù),感興趣的小伙伴們可以參考一下
    2016-04-04
  • C++ const關(guān)鍵字分析詳解

    C++ const關(guān)鍵字分析詳解

    C++中的const關(guān)鍵字的用法非常靈活,而使用const將大大改善程序的健壯性。這篇文章主要介紹了C/C++ 中const關(guān)鍵字的用法,需要的朋友可以參考下
    2021-08-08
  • C++如何獲取系統(tǒng)信息 C++獲取IP地址、硬件信息等

    C++如何獲取系統(tǒng)信息 C++獲取IP地址、硬件信息等

    這篇文章主要為大家詳細介紹了C++如何獲取系統(tǒng)信,C++獲取IP地址、硬件信息等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • 用C語言實現(xiàn)計算器功能

    用C語言實現(xiàn)計算器功能

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 利用C語言實現(xiàn)n字棋游戲

    利用C語言實現(xiàn)n字棋游戲

    本文將利用C語言編寫一個n字棋游戲,和井字棋一樣,不過這個游戲你可以自定義棋盤的大小。文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-05-05
  • C++ 反射機制詳解及實例代碼

    C++ 反射機制詳解及實例代碼

    這篇文章主要介紹了C++ 反射機制詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 淺析string類字符串和C風(fēng)格字符串之間的區(qū)別

    淺析string類字符串和C風(fēng)格字符串之間的區(qū)別

    string類是標(biāo)準(zhǔn)庫的類,并不是內(nèi)置類型,標(biāo)準(zhǔn)庫就像是我們自己定義的類差不多的,string類型對象沒有標(biāo)配'\0'結(jié)尾的
    2013-09-09

最新評論