Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/65: Рейтинг темы: голосов - 65, средняя оценка - 4.72
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
1

Исправить ошибку "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead."

22.03.2015, 12:19. Показов 12487. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Помогите пожалуйста с программой. Программа запускается, но при компиляции выдает ошибку в указанной строке. текст ошибки во вложении
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int InputFile(int **A)
{
    setlocale(LC_CTYPE, "");
    int i, j, count = 0;
    FILE *fp; 
    fp = fopen("Matr.txt", "rt"); <---Выводит ошибку
    if (fp)
    {
        for (i = 0; i < 5; i++)
        for (j = 0; j < 5; j++)
            fscanf(fp, "%d", &A[i][j]);
        fclose(fp);
    }
Миниатюры
Исправить ошибку "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead."  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2015, 12:19
Ответы с готовыми решениями:

Ошибка "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead"
error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To...

выдаёт ошибку 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation,
'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable...

Error C4996: 'fopen': This function or variable may be unsafe
уважаемые программисты, ранее мне не приходилось сталкиваться с записью в файл. написала, как мне...

Ошибка 1 error C4996: 'fopen': This function or variable may be unsafe
есть такой код: // Лабораторная №5.cpp: определяет точку входа для консольного приложения. // ...

15
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 12:38 2
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Вам же компилятор все написал, что нужно делать - либо использовать безопасную функцию fopen_s вместо fopen, либо отключить это предупреждение в свойствах проекта.
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 13:06  [ТС] 3
Понял, спасибо.
А не подскажите ещё, вот когда массив считывается из файла(в файле в строку написано 25 элементов. Все единицы) На экран вместо единиц выводится вот это. Что я не правильно сделала?
Миниатюры
Исправить ошибку "C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead."  
0
Убежденный
22.03.2015, 13:16
  #4

Не по теме:


Программа запускается, но при компиляции выдает ошибку
Если бы здесь проводились конкурсы на самое необычное (абсурдное)
название темы, эта бы заняла одно из первых мест.
Как такое может быть, что программа не компилируется, но запускается ?..
%-)

0
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 13:19  [ТС] 5
Название не я дала, отредактировали так.
0
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 13:19 6
Цитата Сообщение от Maray Посмотреть сообщение
int InputFile(int **A)
Не уверен, но по-моему здесь одна звездочка лишняя
А вообще, fopen, fscanf - это же C-функции, а не C++...
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 13:42  [ТС] 7
Неа, убираю звездочку, и массив из двумерного превращается в одномерный.

Добавлено через 3 минуты
А как правильно написать с помощью fopen_s?

Добавлено через 14 минут
Сделала с помощью fopen_s но все так же на экран выводит вот такой массив

Добавлено через 1 минуту
Выводит этот же массив

Добавлено через 29 секунд
Цитата Сообщение от Maray Посмотреть сообщение
Понял, спасибо.
А не подскажите ещё, вот когда массив считывается из файла(в файле в строку написано 25 элементов. Все единицы) На экран вместо единиц выводится вот это. Что я не правильно сделала?
Миниатюры
Выводит этот же массив
0
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 13:44 8
Может быть проблема в выводе, покажите весь код.
0
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 14:03  [ТС] 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int InputFile(int **A)
{
    setlocale(LC_CTYPE, "");
    int i, j, count = 0;
    FILE *fp; 
    fopen_s(&fp, "Matr.txt", "rt");
    if (fp)
    {
        for (i = 0; i < 5; i++)
        for (j = 0; j < 5; j++)
            fscanf(fp, "%d", &A[i][j]);
        fclose(fp);
    }
    cout << endl;
    for (i = 0; i < 5; i++){
        for (j = 0; j < 5; j++) {
            cout << " " << A[i][j];
            count = count + 1;
            if (count >= 5) {
                cout << endl;
                count = 0;
            }
        }
    }
    system("pause");
    return 0;
}
1
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 14:43 10
Возможно, указанный файл не открывается, то есть программа не попадает внутрь if( fp ) { }.
Это может иметь место из-за того, что расширения файлов не отображаются, и на самом деле имя файла получилось "Matr.txt.txt".
0
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 14:52  [ТС] 11
Попробовала, но все так же отображается=(
0
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 15:42 12
Попробовала, но все так же отображается=(
Так файл-то открывается, или нет?

C++
1
2
3
4
5
6
7
8
9
if( fp )
{
    ...
}
else
{
    cout << "Error open file";
    return -1;
}
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 16:38  [ТС] 13
Ну вот добавили вот это
C++
1
2
3
4
5
else
{
    cout << "Error open file";
    return -1;
}
Теперь выводит Error open file
0
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 17:08 14
Лучший ответ Сообщение было отмечено Maray как решение

Решение

Напишите полный путь к файлу, например:
C++
1
fopen_s(&fp, "D:\\Folder1\\Folder2\\...\\Matr.txt", "rt");
(внимание - слэши двойные)
1
4 / 4 / 4
Регистрация: 03.01.2015
Сообщений: 449
22.03.2015, 18:25  [ТС] 15
Всё, указала полный путь и сработало! Огромное Вам спасибо!
0
9 / 9 / 5
Регистрация: 15.11.2011
Сообщений: 115
22.03.2015, 18:39 16
пожалуйста.
0
22.03.2015, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2015, 18:39
Помогаю со студенческими работами здесь

Ошибка при работе с файлами: C4996: 'fopen': This function or variable may be unsafe
Помогите пожалуйста. писал программу, по данному заданию. вроде как все написал, но с файлами...

Выдает ошибку: error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead
Уважаемые форумчане! У меня не работает программа. Все написано &quot;вроде&quot; правильно. Выдает ошибку:...

Компилятор выдаёт ошибку error C4996: 'strcpy': This function or variable may be unsafe
Добрый день! Помогите , пожалуйста, узнать в чём проблема. Код взят из книги. Мне он не очень...

Ошибка C4996: 'gets': This function or variable may be unsafe
#include &lt;iostream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include...

Error C4996: 'gets': This function or variable may be unsafe
#include &quot;stdafx.h&quot; #include&quot;iostream&quot; #include &quot;cstdio&quot; using namespace std; int main() {...

Ошибка C4996 'strcpy': This function or variable may be unsafe
ругается на strcpy помогите пожалуйста суть программы(. Следующая программа EMPCLASS.CPP создает...

Warning C4996: 'strcpy': This function or variable may be unsafe
Как избавиться от ошибки (warning C4996: 'strcpy': This function or variable may be unsafe), не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru