今日 报错 系列 : 'fopen':이 함수 나 변수는 안전하지 않을 수 있습니다. 대신 fopen_s 사용을 고려하십시오.

VS2017, FILE을 사용하여 쓸 때 다음 오류가 발생합니다.

'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	

여기에 사진 설명 삽입

검색 시도 후 [Open Project >> Properties >> C / C ++ >> Preprocessor >> Preprocessor Definition] 단계에서 _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 !;
여기에 사진 설명 삽입

참조를 위해 여기에 찾은 정보를 넣으십시오.

VS에서 fopen_s 및 fscanf_s로 대체 될 fopen 및 fscanf 요구 사항을 해결하는 가장 완벽한 솔루션 -------------- ps : MFC를 사용할 때 위의 문제가 발생하면 다음을 사용할 수 있습니다. 첫 번째 방법을 해결하는 세 번째 방법 : 프로그램 상단에 #define _CRT_SECURE_NO_DEPRECATE를 추가합니다.

방법 2 : 프로그램 맨 위에 #define _CRT_SECURE_NO_WARNINGS 추가;

방법 3 : 프로그램 상단에 #pragma warning (disable : 4996)을 추가합니다.

방법 4 : scanf, scanf를 scanf_s, fopen_s로 변경합니다. 특정 방법은 Baidu를 사용하십시오.

방법 5 : 프로그램 맨 위에 해당 코드 줄을 추가 할 필요가 없습니다. 새 프로젝트를 만들 때 "SDL 확인"을 선택 취소하면됩니다.

방법 6 : 프로젝트가 설정된 경우 프로젝트 속성에서 SDL을 닫을 수도 있습니다.

방법 7 : 프로젝트에서 설정하고 오류를보고 한 매크로 정의를 프로젝트 속성 -C / C + ±-전 처리기-전 처리기 정의에 넣습니다.

방법 8 : 프로젝트 속성 -c / c ++-명령 줄에서 / D _CRT_SECURE_NO_WARNINGS를 추가합니다.

종료:

공유는 또한 문제에 대한 이해를 높이는 방법이기도합니다. 포괄적이지 않을 수 있지만 확실히 유용하며 나중에 개선 될 것입니다 ~

추천

출처blog.csdn.net/hwx802746/article/details/113177012