Ошибка 1 error C4996: 'fopen': This function or variable may be unsafe - C (СИ)
Формулировка задачи:
есть такой код:
и выводится такая ошибка:
Ошибка 1 error C4996: '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. d:\prodgect\vs\projects\лабораторная №5\лабораторная №5\лабораторная №5.cpp 13
В CodeBlocks всё работает без проблем
// Лабораторная №5.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <stdlib.h>
#define N 80
FILE *stream;
int main()
{
char arr[N];
stream = fopen( "1.txt", "r" );
while (fgets (arr, N, stream) != NULL)
printf("%s", arr);
fclose(stream);
return 0;
}Решение задачи: «Ошибка 1 error C4996: 'fopen': This function or variable may be unsafe»
textual
Листинг программы
// Лабораторная №5.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <stdlib.h>
#define N 80
FILE *f;
int main()
{
char arr[N];
fopen_s( &f, "1.txt", "r" );
while (fgets (arr, N, f) != NULL)
printf("%s\n", arr);
fclose(f);
return 0;
}
Объяснение кода листинга программы
- Объявлена переменная
Nсо значением 80. - Объявлен указатель на файл
f. - В функции
mainинициализируется массивarrс помощью строки литерала. - Вызывается функция
fopen_s, которая открывает файл с помощью параметраf. - Если файл успешно открыт, то начинается чтение файла с помощью цикла
while. - В каждой итерации цикла в переменную
arrзаписывается строка из файла до символа новой строки. - Записанная строка выводится на экран с помощью функции
printf. - После окончания чтения файла вызывается функция
fclose, которая закрывает файл. - Возвращается 0, что означает успешный конец работы программы.