Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
1-Богдан-1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 15
#1

Не компилируется - C++

31.05.2014, 01:01. Просмотров 380. Ответов 6
Метки нет (Все метки)

Не могу понять в чем ошибка, помогите разобраться
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <stdio.h>
#include <stdlib.h>
 
void zapolnit()
{
    FILE* f = fopen("file.dat", "wb");
 
    printf("Kolichestvo zifr: ");
    int n;
    scanf("%i", &n);
    for(int i = 0; i < n; i++)
    {
        int k;
        scanf("%i", &k);
        fwrite(&k, sizeof(int), 1, f);
    }
 
    fclose(f);
}
 
void vivod()
{
    FILE* f = fopen("file.dat", "r");
    printf("File: \n");
 
    int k;
    while(fread(&k, sizeof(int), 1, f))
    {
            printf("%i ", k);
    }
 
    fclose(f);
}
 
void obrobka()
{
    FILE* f = fopen("file.dat", "rb");
 
    int k;
    int n1 = 0;
    int n2 = 0;
    while(fread(&k, sizeof(int), 1, f))
    {
        if(k % 5 == 0)
            n2++;
        n1++;
    }
 
    fclose(f);
 
    int *mas1 = new int[n1];
    int *mas2 = new int[n2];
 
    f = fopen("file.dat", "rb");
 
    n1 = 0;
    n2 = 0;
    while(fread(&k, sizeof(int), 1, f))
    {
        if(k % 5 == 0)
        {
            mas2[n2] = k;
            n2++;
        }
 
        mas1[n1] = k;
        n1++;
    }
 
    fclose(f);
 
    f = fopen("file.dat", "wb");
 
    for(int i = 0; i < n1/2; i++)
    {
        fwrite(&(mas1[i]), sizeof(int), 1, f);
    }
 
    for(int i = 0; i < n2; i++)
    {
        fwrite(&(mas2[i]), sizeof(int), 1, f);
    }
 
    for(int i = n1/2; i < n1; i++)
    {
        fwrite(&(mas1[i]), sizeof(int), 1, f);
    }
 
    fclose(f);
}
 
void main()
{
    zapolnit();
    obrobka();
    vivod();
    _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2014, 01:01     Не компилируется
Посмотрите здесь:

C++ не компилируется
C++ не компилируется
C++ не компилируется
Не компилируется!!!! C++
не компилируется C++
C++ не компилируется
Не компилируется C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
31.05.2014, 01:21     Не компилируется #2
и какие же ошибки компиляции?
1-Богдан-1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 15
31.05.2014, 01:31  [ТС]     Не компилируется #3
Вот, что выдает

Ошибка 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. c:\users\богдан\desktop\consoleapplication5\consoleapplication5\исходный код.cpp 6 1 ConsoleApplication5

Добавлено через 2 минуты
Ошибка 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. c:\users\богдан\desktop\consoleapplication5\consoleapplication5\исходный код.cpp 6 1 ConsoleApplication5
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
31.05.2014, 01:34     Не компилируется #4
1-Богдан-1, 'fopen' - функция или переменная могут быть небезопасны. Предпочтительно использовать fopen_s.

Попробуйте заменить fopen на fopen_s. И да, стоит все таки сообщения об ошибках читать, на то они и сообщения, чтобы их читали..
1-Богдан-1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 15
31.05.2014, 01:42  [ТС]     Не компилируется #5
Пробовал, если на fopen_s заменить, то вот что пишет:

2 IntelliSense: значение типа "errno_t" нельзя использовать для инициализации сущности типа "FILE *" c:\Users\Богдан\Desktop\ConsoleApplication3\ConsoleApplication3\Исходный код.cpp 6 12 ConsoleApplication3
3 IntelliSense: аргумент типа "const char *" несовместим с параметром типа "FILE **" c:\Users\Богдан\Desktop\ConsoleApplication3\ConsoleApplication3\Исходный код.cpp 6 20 ConsoleApplication3
4 IntelliSense: слишком мало аргументов в вызове функции c:\Users\Богдан\Desktop\ConsoleApplication3\ConsoleApplication3\Исходный код.cpp 6 36 ConsoleApplication3
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
31.05.2014, 01:51     Не компилируется #6
1-Богдан-1, ясное дело он работать не будет если его просто так заменить. Функции вроде бы выполняют одно и тоже, но это разные функции, и количество аргументов у них разное. Рекомендую ознакомиться: http://msdn.microsoft.com/en-us/library/z5hh6ee9.aspx . А вообще, зачем Вам использовать fopen? Используйте потоки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2014, 02:09     Не компилируется
Еще ссылки по теме:

Не компилируется C++
Не компилируется C++
C++ Не компилируется
C++ Не компилируется

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
31.05.2014, 02:09     Не компилируется #7
отключи проверки SDL в свойствах проекта
'SDL checks' ( project properties, configuration properties, C/C++, general)
Yandex
Объявления
31.05.2014, 02:09     Не компилируется
Ответ Создать тему
Опции темы

Текущее время: 09:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru