今日報錯系列:‘fopen‘: This function or variable may be u

VS2017,再用到FILE寫入時,遇到如下報錯
今日報錯系列:‘fopen‘: This function or variable may be u
在一頓搜索嘗試之後,什麼按步驟 【打開項目 >> 屬性 >> 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‘: This function or variable may be u
下面把找到的資料先放到這,以備參考:

解決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 就行了。

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