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

Debug Assertion failed. Line 77. Expression (stream!=0) - C++

Восстановить пароль Регистрация
 
kira_1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 59
19.05.2014, 22:35     Debug Assertion failed. Line 77. Expression (stream!=0) #1
Подскажите, пожалуйста, в чем заключается ошибка. Запускается, начинает работать, а потом пишет Debug Assertion failed. Line 77. Expression (stream!=0).




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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
 
void vvod(void);
void create_file(void);
void view_file(void);
void edit_file(void);
bool flag (void);
 
struct biblioteka {
    char imya[20];
    char nazva[20];
    char rik[5];
    char group[2];
    };
 
    FILE *bibliotek;
    FILE *temp;
    int select1;
    int p,n,u,j=0,k,i=0;
    struct biblioteka avtor,temporary;
    char surname[20];
    char surname_del[20];
    char surnomer[1];
 
void main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_CTYPE,"Russian");
    int select;
    for (;;) {
        puts("\n\t\t\tМЕНЮ");
        puts("\t\t1 - Создание нового файла");
        puts("\t\t2 – Просмотр файла");
        puts("\t\t3 – Корректировка записей файла");
        puts("\t\t4 – Выход");
        printf("Выберите  действие:  \r\n");
        scanf("%d",&select);
        fflush(stdin);
 
        switch (select) {
        case 1: create_file(); break;
        case 2: view_file(); break;
        case 3: edit_file(); break;
        case 4: exit(0);
        default: puts ( "Неверный выбор, нажмите любую клавишу"); _getch();
        }
    }
}
 
void vvod(void) {
    printf("\nВведите автора книги: "); scanf("%s",&avtor.imya); fflush(stdin);
    printf("Введите название книги: "); scanf("%s",&avtor.nazva); fflush(stdin);
    printf("\nВведите год выпуска: "); scanf("%s",&avtor.rik); fflush(stdin);
    printf("Введите групу книги: "); scanf("%s",&avtor.group); fflush(stdin);
   
   
}
 
void create_file(void) {
 
            do {
                fflush(stdin);
                vvod();
                fflush(stdin);
                fwrite (&avtor,sizeof(avtor),1,bibliotek);
                printf("\t\tПродолжить ( д / н )?");
            }
            while (flag()!=true);
            fclose(bibliotek);
}
 
void view_file(void) {
            while (fread(&avtor,sizeof(avtor),1,bibliotek)) {
                if (feof(bibliotek)) break;
                printf("#%s %s\t%s %s %s %s\n",avtor.imya, avtor.nazva, avtor.rik,avtor.group);
            }
            fclose (bibliotek);
}
 
void edit_file(void) {
    puts("\n\t\t\tВЫБЕРИТЕ КОМАНДУ");
            puts("\t\t1 - Изменить запись");
            puts("\t\t2 – Добавить запись");
            puts("\t\t3 – Удалить запись");
            scanf("%d",&select1); fflush(stdin);
            
            switch (select1) {
            case 1:
                printf("Введите автора для изменения: "); fflush(stdin);
                gets(surname);
                fread(&avtor,sizeof(avtor),1,bibliotek);
                while (!feof(bibliotek)) {
                    if (strcmp(avtor.imya,surname)==0) {
                        printf("#%s %s\t%i %i %i %i\n",avtor.imya,avtor.nazva,avtor.rik,avtor.group);
                        printf("\t\tИзменить? ( д / н )");
                        if (flag()!=true) {
                            fflush(stdin);
                            vvod();
                            fflush(stdin);
                            p=sizeof(avtor);
                            fseek(bibliotek,-p,1); 
                            fwrite(&avtor,sizeof(avtor),1,bibliotek);
                                break;
                        }
                    }
 
                    fread(&avtor,sizeof(avtor),1,bibliotek);
                }
                fclose (bibliotek);
                break;
            case 2:
                do {
                    fflush(stdin);
                    vvod();
                    fflush(stdin);
                    fwrite (&avtor,sizeof(avtor),1,bibliotek);
                    printf("\t\tПродолжить ( д / н )?");
 
                }
                while (flag()!=true);
                fclose (bibliotek);
                break;
            case 3:
                if(!(temp = fopen("temp.bin", "w+b"))) {printf("\t\tНевозможно открыть файл \n"); return; }
                printf("Введите автора для удаления: "); fflush(stdin);
                gets(surname_del);
                fread(&avtor,sizeof(avtor),1,bibliotek);
                while (!feof(bibliotek)) {
                    if (strcmp(avtor.imya,surname_del)!=0) {
                        fwrite(&avtor,sizeof(avtor),1,temp);
                        fread(&avtor,sizeof(avtor),1,bibliotek);
                    }   else fread(&avtor,sizeof(avtor),1,bibliotek);
                }
                fclose (bibliotek);
                remove ("biblioteka.bin");
                fclose (temp);
                rename ("temp.bin","biblioteka.bin");    //Меняем основной файл временным
                //Открываем новый созданный файл
                if(!(temp = fopen("biblioteka.bin", "r+b"))) {printf("\t\tНевозможно открыть файл \n"); return; }
                while (fread(&avtor,sizeof(avtor),1,bibliotek)) {
                    if (feof(temp)) break;
                    printf("#%s %s\t%i %i %i %i\n",avtor.imya, avtor.nazva, avtor.rik,avtor.group);
                }
                break;
            }
}
 
 
bool flag (void)
{
    char flag1;
    bool flag2=true;
    scanf("%c",&flag1);
    fflush(stdin);
    if (flag1!='Н' && flag1!='н') {
        flag2=false;
    }
    else flag2=true;
    return flag2;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 22:35     Debug Assertion failed. Line 77. Expression (stream!=0)
Посмотрите здесь:

C++ debug assertion failed
Debug assertion failed C++
C++ ошибка "Debug Assertion Failed".Line 1441!
Debug Assertion Failed C++
C++ Debug Assertion Failed
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 23:02     Debug Assertion failed. Line 77. Expression (stream!=0) #2
Где открытие файлов?
kira_1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 59
19.05.2014, 23:05  [ТС]     Debug Assertion failed. Line 77. Expression (stream!=0) #3
Вначале файл создается, а потом уже просматривается.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 23:07     Debug Assertion failed. Line 77. Expression (stream!=0) #4
Цитата Сообщение от kira_1 Посмотреть сообщение
Вначале файл создается, а потом уже просматривается.
Цитата Сообщение от alsav22 Посмотреть сообщение
Где открытие файлов?
В какой строке?
kira_1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 59
19.05.2014, 23:09  [ТС]     Debug Assertion failed. Line 77. Expression (stream!=0) #5
Строки 78-80.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 23:19     Debug Assertion failed. Line 77. Expression (stream!=0) #6
Цитата Сообщение от kira_1 Посмотреть сообщение
Строки 78-80.
Где там окрытие файла? Чтение - вижу, закрытие - вижу, открытия - не вижу.
kira_1
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 59
19.05.2014, 23:28  [ТС]     Debug Assertion failed. Line 77. Expression (stream!=0) #7
А скажите, пожалуйста, что нужно исправить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2014, 23:42     Debug Assertion failed. Line 77. Expression (stream!=0)
Еще ссылки по теме:

C++ Debug assertion failed
Debug assertion failed C++
Debug Assertion Failed! C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.05.2014, 23:42     Debug Assertion failed. Line 77. Expression (stream!=0) #8
Файл открыть (fopen()).
http://www.cplusplus.com/reference/cstdio/fopen/
Yandex
Объявления
19.05.2014, 23:42     Debug Assertion failed. Line 77. Expression (stream!=0)
Ответ Создать тему
Опции темы

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