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

Ошибка C4996

29.01.2015, 21:33. Показов 36170. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня показывать ошибку C4996: 'fopen'. помогите исправить.
Вот код:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include <iostream>
 
const int M = 50; //максмальное количество строк
const int N = 50; //максимальное количество столбцов
 
int main(int argc, char** argv) {
 
    setlocale(0, "rus"); //установка русскоязычной локации
 
    int m, n, k, sum, msum; //описываем переменные
    int a[M][N]; //описываем двумерный массив
    char c;
 
    FILE * file = fopen("test.txt", "r"); //объявляем файловую переменную, связываем с файлом и открываем для чтения
 
    m = 0; //инициализируем переменны
    n = 0;
    while (fscanf(file, "%i%c", &a[m][n], &c) != EOF) //читаем данные пока не конец файла
    {
 
        if (c == '\n') //если конец строки
        {
            m++; //переходим к следующей строке
            n = 0;
        }
        else
            n++; //переходим к следующему столбцу
    }
    m++;
    fclose(file); //закрываем файл
 
    for (int i = 0; i < m; i++) //проход по строкам
    {
        for (int j = 0; j < n; j++) //проход по столбцам
            printf("%4i", a[i][j]); //вывод на экран
        printf("\n"); //переход на новую строку
    }
 
    msum = 10000; //начальная минимальня сумма
 
    for (int i = 1; i < m; i += 2) //проход по строкам
    {
        sum = 0; //обнуляем сумму
        for (int j = 0; j < n; j++) //проход по столбцам
            if (a[i][j] % 2 != 0) //проверка на чётность
                sum += a[i][j]; //накопление суммы
        printf("Сумма нечётных элементов в %i-й строке: %i\n", i + 1, sum); //переход на новую строку
        if (sum < msum)
        {
            msum = sum; //запоминаем текущую сумму
            k = i + 1; //запоминаем текущую строку
        }
    }
    printf("Минимальная сумма нечётных элементов в %i-й строке. \n", k);
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2015, 21:33
Ответы с готовыми решениями:

Ошибка C4996 и WinSock2
Вот такая беда: не могу собрать проект написанный с использованный с использованием WinSock2....

Ошибка в getch: Error C4996
Здравствуйте. Не понимаю в чём ошибка. Вроде как не первый раз использую этот код, но в первые...

Ошибка 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...

Ошибка компилирования C4996 при вызове scanf
У мене выдает ошибку #include &quot;stdafx.h&quot; в visual studio 2015 но на visual studio 13 работет всё....

15
Модератор
Эксперт С++
13636 / 10857 / 6452
Регистрация: 18.12.2011
Сообщений: 28,941
29.01.2015, 21:39 2
C++
1
#pragma warning(disable:4996)
2
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
29.01.2015, 21:41 3
<cstdio> подключи.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 21:41 4
вообще нужно полный текст ошибок/предупреждений приводить.
а перед этим прочитать. там все понятно написано что произошло и как с этим бороться
(по крайней мере для C4996)
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 10
29.01.2015, 21:43  [ТС] 5
#pragma warning(disable:4996) и <cstdio> не помогли, как и #define _CRT_SECURE_NO_WARNINGS. а если fopen заменить на fopen_s, то пишет, что fopen_s не может принимать два значения.

Добавлено через 1 минуту
полный текст ошибки: 1>c:\users\николай\documents\visual studio 2013\projects\consoleapplication8\consoleapplication8\consoleapplication8.cpp(18 ): 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.
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(211) : see declaration of 'fopen'
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 21:43 6
наверно потому, что оно принимает три:
https://msdn.microsoft.com/ru-... h6ee9.aspx

_CRT_SECURE_NO_WARNINGS - вот это вы где задефайнили? надо чтобы перед инклудом это было.
в вашем случае наверно это прям перед stdafx
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
29.01.2015, 21:45 7
В свойствах проекта уровень предупреждений поменяй.
1
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 10
29.01.2015, 21:47  [ТС] 8
DU2, так я и перед инклудами писал, выдает еще одну ошибку warning C4603: '_CRT_SECURE_NO_WARNINGS' : macro is not defined or definition is different after precompiled header use
Add macro to precompiled header instead of defining here
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 21:49 9
C++
1
2
3
4
5
#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include <iostream>
 
...
так? если так и все равно проблемы - тогда хз.
пробуйте в свойствах проекта выставить:
Project->PRoperties->C/C++->Preprocessor->Preprocessor Definitions
туда этот макрос напишите.
1
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 10
29.01.2015, 22:06  [ТС] 10
nmcf, а как это сделать? у меня английская версия, плохо понимаю.

Добавлено через 15 минут
В общем в свойствах проекта прописал макрос - не помогло. Поменял уровень предупреждений - не помогло
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
29.01.2015, 22:26 11
В разделе C/C++ - обрабатывать предупреждения как ошибки - Нет.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 22:38 12
какая у вас студия?
запакуйте все проектные файлы и сюда выложите чтоли.
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 10
29.01.2015, 22:46  [ТС] 13
VS 2013
Вот проект
http://rghost.ru/7xfNTbfN2
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
29.01.2015, 23:01 14
Лучший ответ Сообщение было отмечено Gusev как решение

Решение

В свойствах:
Project->Properties->Configuration Properties->C/C++->General->SDL checks
поставте в No
это превратит ошибку в ворнинг, которая отключается если сильно надо одним из ранее описанных способов:
макросом в свойствах или макросом в коде.
3
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 10
29.01.2015, 23:19  [ТС] 15
а теперь выводит вот это http://rghost.ru/8J7k4jhT5

Добавлено через 3 минуты
похоже, что это у меня в VS проблема.
DU2, спасибо.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
30.01.2015, 00:03 16
это у вас рантайм ошибка. глюк в коде, а не в студии.
осваивайте студийных дебаггер.
начать можно отсюда:
https://www.cyberforum.ru/cpp-... 62479.html
0
30.01.2015, 00:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2015, 00:03
Помогаю со студенческими работами здесь

Ошибка 1 error C4996: 'scanf': This function or variable may be unsafe
Здравствуйте , подскажите пожалуйста с задачками) есть 2 задачки по массивам с ошибкой не могу...

Ошибка 1 error C4996: 'getche': The POSIX name for this item is deprecated
Ошибка 1 error C4996: 'getche': The POSIX name for this item is deprecated. Instead, use the ISO...

Ошибка C4996 'strtok': This function or variable may be unsafe. Consider using strtok_s instead
При запуске программы выдаёт ошибку: Ошибка C4996 'strtok': This function or variable may be...

Ошибка error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;fstream&gt; #include&lt;string&gt; #include&lt;iomanip&gt; ...

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

Ошибка "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...


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

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