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를 추가합니다.
종료:
공유는 또한 문제에 대한 이해를 높이는 방법이기도합니다. 포괄적이지 않을 수 있지만 확실히 유용하며 나중에 개선 될 것입니다 ~