VS2017,再用到FILE寫入時,遇到如下報錯
在一頓搜索嘗試之後,什麼按步驟 【打開項目 >> 屬性 >> C/C++ >>預處理器 >> 預處理器定義 】內添加 _CRT_SECURE_NO_WARNIN 等等這些都沒有效果。
最終是這樣解決的:
在程序最前面添加:#define _CRT_SECURE_NO_DEPRECATE 後解決問題。
#define _CRT_SECURE_NO_DEPRECATE
舉個栗子:
#define _CRT_SECURE_NO_DEPRECATE //加到此處解決問題
#include <iostream>
using namespace std;
void main()
{
FILE *fp = fopen("myFileFp.txt","w");
char str[] = "hello world !";
for (int i = 0; i < 1000; i++)
{
fprintf(fp," 第 %d 個 %s ;\n",i,str);
}
fclose(fp);
}
文件打開後:從0 - 999 個 hello world !;
下面把找到的資料先放到這,以備參考:
解決fopen、fscanf 在VS中要求替換爲fopen_s、fscanf_s的最全解決辦法 -------------- ps:在使用MFC中遇到上述問題,可以通過方法三解決方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE;
方法二:在程序最前面加#define _CRT_SECURE_NO_WARNINGS;
方法三:在程序最前面加#pragma warning(disable:4996);
方法四:把scanf、scanf改爲scanf_s、fopen_s,具體方法請百度;
方法五:無需在程序最前面加那行代碼,只需在新建項目時取消勾選“SDL檢查”即可;
方法六:若項目已建立好,在項目屬性裏關閉SDL也行;
方法七:在工程項目設置一下就行;將報錯那個宏定義放到 項目屬性 – C/C+±- 預處理器 – 預處理器定義;
方法八:在 項目屬性 – c/c++ – 命令行 添加:/D _CRT_SECURE_NO_WARNINGS 就行了。