VS2019中scanf返回值被忽略的問題及其解決方法
阿新 • • 發佈:2021-01-29
#### 目錄
- [問題](在使用Visual Studio 2019編寫C語言程式時遇到了scanf返回值被忽略)
- [問題原因](#問題原因:)
- [方法①](#方法①:)
- [方法②](#方法②:)
- [方法③](#方法③:)
- [方法④](#方法④:)
**把scanf改成:scanf_s**
這是VS編譯器特有,既然覺得scanf()不安全,那它就自己定義了一個scanf_s()。
![3](https://img2020.cnblogs.com/blog/2290218/202101/2290218-20210126225324556-922149961.png)
其實我是不推薦大家使用這種方法的,因為scanf_s它是vs編譯器特有的,也就是說它不具有跨平臺性/可移植性,在其他編譯器上無法識別執行
在C語言程式開頭新增程式碼:**#pragma warning(disable:4996)**
//全部關掉
*(或者)*
在C語言程式開頭新增程式碼:**#pragma warning(once:4996)**
//僅顯示一個
![5](https://img2020.cnblogs.com/blog/2290218/202101/2290218-20210126225325249-852458875.png)
![15](https://img2020.cnblogs.com/blog/2290218/202101/2290218-20210126225325449-1623237669.png)
在C語言程式開頭新增程式碼:**#define _CRT_SECURE_NO_WARNINGS**
//忽略安全檢測
![4](https://yizhanfx.oss-cn-hangzhou.aliyuncs.com/gzh/4.png)
每次都要加這麼一串程式碼,是不是感覺有點費力??~~(我一開始找到這種方法的時候第一感覺也是這樣的)~~
其實不用那麼麻煩,這裡還可以細分為兩種方法:
**(1)**我們只需要在VS中加入 **_CRT_SECURE_NO_WARNINGS** 這個巨集就可以了,具體操作如下圖所示:
![14](https://yizhanfx.oss-cn-hangzhou.aliyuncs.com/gzh/14.png)
**(2)**在VS2019的安裝路徑下找到“newc++file.cpp”這個檔案,用記事本的方式開啟,並把這行程式碼複製貼上上去,然後儲存即可,這樣以後每次新建.c原始檔的時候這行程式碼就會自動出現在第一行。
![16](https://yizhanfx.oss-cn-hangzhou.aliyuncs.com/gzh/16.png)
![17](https://yizhanfx.oss-cn-hangzhou.aliyuncs.com/gzh/17.png)
【注意】如果在儲存的時候出現“拒絕訪問”的情況,可以測試下載安裝一個工具“[Notepad++](https://notepad-plus.en.softonic.com/)”,然後以管理員的身份執行這個軟體,用這個軟體開啟上面提到的“newc++file.cpp”檔案,複製貼上程式碼上去後,儲存即可。
最後提到的這兩種都是一次搞定,後面都不用再弄了。
**我個人偏向於方法④的第(1)種方法。我也比較推薦你使用這種方法——畢竟簡單而且可以說是一勞