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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.94
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
#1

Ошибка : Попытка чтения или записи в защищенную память - C++

28.10.2012, 18:12. Просмотров 5157. Ответов 27
Метки нет (Все метки)

выходит ошибка после того как выполняется функция void poisk_cena(). Подскажите пожалуйста где ошибка.
Ошибка:
Необработанное исключение типа "System.AccessViolationException" произошло в kurs_9.exe
Дополнительные сведения: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.
код:
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
// kurs_9_2.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <atlstr.h>
#include <string>
 
#include <stdio.h>
#include <stdlib.h>
 
 
using namespace System;
using namespace std;
 
//**********
 
int t; // кол dvd дисков
bool est=false; // имеется ли БД дисков 
 
struct dvd //структура dvd диска 
{
string namefilm;//название фильма
string namereg;// имя режисера
int prodol; // продолжительность в минутах
int cena; // цена
};
 
 
void addvd() // добавление дисков
{   
 
    cout<<"Вводите только латиницей(английскими)\n";
    cout<<"Количество dvd дисков = "; 
    cin>>t;
dvd *p1 = new dvd[t];
 //запись в файл
 fstream f("f.dat", ios::out);
    for(int i=0; i<t; i++)
 {  cout<<"\nназвание фильма: ";           cin>>p1[i].namefilm;   f<<p1[i].namefilm<<" ";
    cout<<"имя режисера: ";                cin>>p1[i].namereg;    f<<p1[i].namereg<<" ";
    cout<<"продолжительность в минутах: "; cin>>p1[i].prodol;     f<<p1[i].prodol<<" ";
    cout<<"цена: ";                        cin>>p1[i].cena;       f<<p1[i].cena<<"\n";
  }
 f.close();//закрытие потока
 delete [] p1;
 est=true;
}
 
 
void print()//вывести на экран
{ if (est){ 
dvd *p1 = new dvd[t];
cout<<"\n";
fstream f("f.dat", ios::in);
for(int i = 0; i<t; i++)
{  
    cout<<"    Диск: "<<i+1<<endl;
    f >> p1[i].namefilm; cout<<"Название фильма: "<<p1[i].namefilm<<endl;
    f >> p1[i].namereg; cout<<"Имя режисера: "<<p1[i].namereg<<endl;
    f >> p1[i].prodol; cout<<"Продолжительность: "<<p1[i].prodol<<endl;
    f >> p1[i].cena; cout<<"Цена: "<<p1[i].cena<<"\n\n";
    
}
f.close();
delete [] p1;}
else {cout<<"\nОшибка! Нет дисков\n";}
}
 
//*********
void poisk_cena(){
if (est){ 
dvd *p1 = new dvd[t];
int rub;
cout<<"Задайте цену: ";
cin>>rub;
//*******
int m; 
dvd *p2 = new dvd[];// сюда сохр отсортированные диски
int e = 0; // количество оставшихся дисков
//*********
 
fstream f("f.dat", ios::in);
for(int i = 0 , m = 0 ; i<t; i++) // тут выводит ошибку после первой итерации 
{  
    f >> p1[i].namefilm; 
    f >> p1[i].namereg;
    f >> p1[i].prodol;
    f >> p1[i].cena;
    if (p1[i].cena<rub){
        cout<<"       Диск: "<<i+1<<"\n";
 
        cout<<"Название фильма: "<<p1[i].namefilm<<"\n";    
        cout<<"Имя режиссера: "<<p1[i].namereg<<"\n";       
        cout<<"Продолжительность: "<<p1[i].prodol<<"\n";    
        cout<<"Цена: "<<p1[i].cena<<"\n\n";                 
        // присвоение
        p2[m].namefilm = p1[i].namefilm;
        p2[m].namereg  = p1[i].namereg;
        p2[m].prodol   = p1[i].prodol;
        p2[m].cena     = p1[i].cena;
    
    //memcpy( &p2[m], &p1[i], sizeof(struct dvd)); // присвоение всей структуры
    m++;
    e++;
    }
}
 
for(int m ; m<e; m++)
{   cout<<"-------------------------\n";
    cout<<"Название фильма: "<<p2[m].namefilm<<endl;
    cout<<"Имя режисера: "<<p2[m].namereg<<endl;
    cout<<"Продолжительность: "<<p2[m].prodol<<endl;
    cout<<"Цена: "<<p2[m].cena<<"\n\n";
}
 
f.close(); 
// запись результата в файл
fstream fs("f.dat", ios::out);
for(int m ; m<e; m++)
{
fs << p2[m].namefilm << " ";
fs << p2[m].namereg << " ";
fs << p2[m].prodol << " ";
fs << p2[m].cena << "\n";
}
fs.close(); delete [] p2; delete [] p1; 
}
else {cout<<"\nОшибка! Нет дисков\n";}
 
}
//*******  ГЛАВНАЯ ***************
int main()
{
    setlocale(LC_ALL,"Russian"); // подключение русского языка
    int k; // меню
     
    do{
    cout<<"1. Создать БД дисков\n";
    cout<<"2. Вывести данные\n";
    cout<<"3. Удалить с ценой выше чем...\n";
    cout<<"4. Выход\n";
    cin>>k;
    switch(k){
    case 1: addvd(); break;
    case 2: print(); break;
    case 3: poisk_cena(); break;
    }} while(k!=4);
 
    system("pause");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 18:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка : Попытка чтения или записи в защищенную память (C++):

Попытка чтения или записи в защищенную память - C++
Здравствуйте. Вот такая проблема. При компиляции программы выводит сообщение: An unhandled exception of type...

Попытка чтения или записи в защищенную память - C++
собственно в проблема в заголовке #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; void...

Попытка чтения или записи в защищенную память - C++
Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена. P.S. не ругайтесь...

Ошибка: "Попытка чтения или записи в защищенную память" - C++
Вот это выдает: Additional information: Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память...

Динамический массив структур - ошибка "попытка чтения или записи в защищенную память" - C++
не работает: class Students { struct list { string marka_mashini; string familiya_vladelca; int god_vipuska; ...

Двумерный динамический массив. Попытка чтения или записи в защищенную память - C++
В общем функция выглядит так float** calculate(float H, float W, float L, float Vu, float Tu, float l, float ro, float T0, float C,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2012, 20:11 #16
Если m в циклах задать и dvd *p2 = new dvd[t], ошибки нет, но муссор выводит при "Удалить с ценой выше чем..."
0
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
28.10.2012, 20:14  [ТС] #17
Цитата Сообщение от alsav22 Посмотреть сообщение
А значение m где?
79 строка - объявление
85 - присвоение 0
105 - прибавление на 1 диск

Цитата Сообщение от kertio Посмотреть сообщение
t задается только в addvd
А как присвоить его в addvd чтобы потом его другие функции тоже видели, как то через указатель?
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2012, 20:22 #18
Цитата Сообщение от иван_пропал Посмотреть сообщение
79 строка - объявление
Я разве про объявление спросил? Переменная m, объявленная в 79 строке, вообще, нигде не используется. В циклах вы объявляете уже другие переменные с тем же именем, а значения не задаёте (110, 121)
0
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
28.10.2012, 20:28  [ТС] #19
Цитата Сообщение от alsav22 Посмотреть сообщение
а значение не задаёте.
а развет int m = 0 не задает значение 0 ?
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2012, 20:29 #20
110, 121.
0
kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
28.10.2012, 20:31 #21
Цитата Сообщение от иван_пропал Посмотреть сообщение
79 строка - объявление
85 - присвоение 0
105 - прибавление на 1 диск


А как присвоить его в addvd чтобы потом его другие функции тоже видели, как то через указатель?

В любом участке кода в любой функции. у переменной t глобальная область видимости. указатели тут не нужны.
Запомни раз на всю жизнь: "Перед использованием любой переменной, проверь её на то что она корректно инициализирована"

И научись отличать "объявление" от "инициализации".
1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.10.2012, 20:39 #22
Цитата Сообщение от иван_пропал Посмотреть сообщение
79 строка - объявление
Объявление m. Нигде переменная не используется.

Цитата Сообщение от иван_пропал Посмотреть сообщение
85 - присвоение 0
Объявление другой переменной m и присвоение значения 0.
110 строка. Объявление другой переменной m без присвоения значения .
121 строка. Объявление другой переменной m без присвоения значения .
1
иван_пропал
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
28.10.2012, 20:59  [ТС] #23
А как правильно тогда объявлять, инициализировать и присваивать чтоб работало?
Пробовал так
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
for(int i = 0 , m = 0 ; i<t; i++)
{  
    f >> p1[i].namefilm; 
    f >> p1[i].namereg;
    f >> p1[i].prodol;
    f >> p1[i].cena;
         if (p1[i].cena<rub){// присваиваем новому массиву
            cout<<"       Диск: "<<i+1<<"\n";
 
            cout<<"Название фильма: "<<p1[i].namefilm<<"\n";    
            cout<<"Имя режиссера: "<<p1[i].namereg<<"\n";       
            cout<<"Продолжительность: "<<p1[i].prodol<<"\n";    
            cout<<"Цена: "<<p1[i].cena<<"\n\n";                 
            // присвоение
            
            p2[m].namefilm = p1[i].namefilm;
            p2[m].namereg  = p1[i].namereg;
            p2[m].prodol   = p1[i].prodol;
            p2[m].cena     = p1[i].cena;
        
            m++;
            e=m; 
            }
    }
0
kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
28.10.2012, 21:16 #24
Цитата Сообщение от иван_пропал Посмотреть сообщение
А как правильно тогда объявлять, инициализировать и присваивать чтоб работало?
Пробовал так
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
for(int i = 0 , m = 0 ; i<t; i++)
{  
    f >> p1[i].namefilm; 
    f >> p1[i].namereg;
    f >> p1[i].prodol;
    f >> p1[i].cena;
         if (p1[i].cena<rub){// присваиваем новому массиву
            cout<<"       Диск: "<<i+1<<"\n";
 
            cout<<"Название фильма: "<<p1[i].namefilm<<"\n";    
            cout<<"Имя режиссера: "<<p1[i].namereg<<"\n";       
            cout<<"Продолжительность: "<<p1[i].prodol<<"\n";    
            cout<<"Цена: "<<p1[i].cena<<"\n\n";                 
            // присвоение
            
            p2[m].namefilm = p1[i].namefilm;
            p2[m].namereg  = p1[i].namereg;
            p2[m].prodol   = p1[i].prodol;
            p2[m].cena     = p1[i].cena;
        
            m++;
            e=m; 
            }
    }
C++
1
for(int i = 0 , m = 0 ; i<t; i++)
тут на каждой итерации m снова становится 0. тут присваивание.
попробуй так
C++
1
2
int m = 0;
for(int i = 0; i<t; i++)
далее в теле цикла она инкрементируется где нужно.

Добавлено через 3 минуты
или
C++
1
for(int i = 0 , int m = 0 ; i<t; i++)
отличается тем, что в теле for конструируется новый объект типа int значением 0. а в исходном варианте идет присваивание, так как объект m уже существует. создавать его значит не нужно. как-то так.
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
28.10.2012, 22:17 #25
Цитата Сообщение от kertio Посмотреть сообщение
тут на каждой итерации m снова становится 0. тут присваивание.
ты уверен?
1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 02:06 #26
Код
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
166
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
 
struct dvd // структура dvd диска 
{
    string namefilm; // название фильма
    string namereg; // имя режисера
    int prodol; // продолжительность в минутах
    int cena; // цена
};
 
void addvd() // создание базы и добавление дисков
{   
    cout << "Вводите только латиницей(английскими)\n";
    cout << "Количество dvd дисков = ";
    int t; // количество добавляемых дисков
    (cin >> t).get();
 
    dvd *p = new dvd[t];
    int n = 0; // количество дисков в файле (записывается в первой строке)
  
  //запись в файл
 
 fstream f("f.txt");
 if (!f.is_open()) // если файла не существует
 {
    f.open("f.txt", ios::out);
    f << t << '\n'; // записываем в файл количество дисков
    f.close();
 }
 else // если файл существует
 {
    f >> n; // читаем количество дисков в файле
    f.seekg(0);
    f << t + n << '\n'; // записываем новое количество дисков в файле
    f.close();
 }
 
 f.open("f.txt", ios::app); // открываем файл для дозаписи
 
 for(int i = 0; i < t; i++)
 {  cout << "\nНазвание фильма: ";           getline(cin, p[i].namefilm);  f << p[i].namefilm << '\n';
    cout << "Имя режисера: ";                getline(cin, p[i].namereg);   f << p[i].namereg  << '\n';
    cout << "Продолжительность в минутах: ";  cin  >> p[i].prodol;          f << p[i].prodol   << '\n';
    cout << "Цена: ";                        (cin >> p[i].cena).get();     f << p[i].cena     << '\n';
 }
 f.close(); 
 
 delete [] p;
}
 
 
void print() // вывести из файла на экран
{ 
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          for(int i = 0; i < n; i++)
          {  
                string temp;
                int v;
                
                cout << "    Диск: "<< i + 1 << endl;
                cout << "\nНазвание фильма: ";           getline(f, temp);   cout << temp << endl;
                cout << "Имя режисера: ";                getline(f, temp);   cout << temp << endl;
                cout << "Продолжительность в минутах: "; f  >> v;            cout << v    << endl;
                cout << "Цена: ";                        (f >> v).get();     cout << v    << endl;
                cout << endl;
          }
          f.close();
      }
   }
}
 
void poisk_cena()
{
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          int rub;
          cout << "Задайте цену: ";
          (cin >> rub).get();
 
          int e = 0; // количество дисков в новой базе
          
          dvd *p = new dvd[n]; // массив для новой базы
  
          for(int i = 0 ; i < n; i++) // чтение из файла во временную структуру
          { 
                dvd temp; 
                getline(f, temp.namefilm); 
                getline(f, temp.namereg);
                f >> temp.prodol;
                (f >> temp.cena).get();
                if (temp.cena < rub) // если цена ниже, то помещаем сруктуру в массив
                {
                    p[i] = temp;
                    e++;
                }
          }
          f.close();      
 
        //вывод на экран и запись в файл новой базы
         f.open("f.txt", ios::out);
         f << e << '\n';
         if (e == 0) cout << "\nДисков в базе нет." << endl << endl;
         for(int i = 0; i < e; i++)
         {  
            cout << "\n    Диск: "                   << i + 1 << endl;
            cout << "\nНазвание фильма: "           << p[i].namefilm << '\n';  f << p[i].namefilm <<'\n';
            cout << "Имя режисера: "                << p[i].namereg  << '\n';  f << p[i].namereg  << '\n';
            cout << "Продолжительность в минутах: " << p[i].prodol   << '\n';  f << p[i].prodol   << '\n';
            cout << "Цена: "                        << p[i].cena     << '\n';  f << p[i].cena     << '\n';
            cout << endl;
         }
         f.close(); 
 
         delete [] p;
     }
  }
}
 
 
int main()
{
    setlocale(LC_ALL,"Russian"); // подключение русского языка
    
    int k; // меню
    do
    {
        cout << endl;
        cout << "1. Создать БД дисков или добавить в базу\n";
        cout << "2. Вывести данные\n";
        cout << "3. Удалить с ценой выше чем...\n";
        cout << "4. Выход\n";
        
        (cin >> k).get();
        switch(k)
        {
            case 1: addvd(); 
                break;
            case 2: print(); 
                break;
            case 3: poisk_cena(); 
                break;
        }
    } while(k != 4 );
 
    system("pause");
    return 0;
}
1
kertio
26 / 26 / 1
Регистрация: 20.09.2011
Сообщений: 68
29.10.2012, 07:03 #27
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ты уверен?
нда, сам же ответил, что m увеличивается где нужно, и сам же фигню спорол. прошу прощения, был уставший, внимание не то
1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.11.2012, 06:22 #28
Небольшое исправление:
Кликните здесь для просмотра всего текста
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
166
167
168
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
 
struct dvd // структура dvd диска 
{
    string namefilm; // название фильма
    string namereg; // имя режисера
    int prodol; // продолжительность в минутах
    int cena; // цена
};
 
void addvd() // создание базы и добавление дисков
{   
    cout << "\n\nКоличество dvd дисков = ";
    int t; // количество добавляемых дисков
    (cin >> t).get();
 
    int n = 0; // количество дисков в файле (записывается в первой строке)
  
  //запись в файл
 
 fstream f("f.txt");
 if (!f.is_open()) // если файла не существует
 {
    f.open("f.txt", ios::out);
    f << t << '\n'; // записываем в файл количество дисков
    f.close();
 }
 else // если файл существует
 {
    f >> n; // читаем количество дисков в файле
    f.seekg(0);
    f << t + n << '\n'; // записываем новое количество дисков в файле
    f.close();
 }
 
 f.open("f.txt", ios::app); // открываем файл для дозаписи
 
 cout << "\nВводите только латиницей(английскими)\n";
 for(int i = 0; i < t; i++)
 {  
    dvd temp;
 
    cout << "\nНазвание фильма: ";           getline(cin, temp.namefilm);  f << temp.namefilm << '\n';
    cout << "Имя режисера: ";                getline(cin, temp.namereg);   f << temp.namereg  << '\n';
    cout << "Продолжительность в минутах: "; cin  >> temp.prodol;          f << temp.prodol   << '\n';
    cout << "Цена: ";                        (cin >> temp.cena).get();     f << temp.cena     << '\n';
 }
 
 f.close(); 
 
}
 
 
void print() // вывести из файла на экран
{ 
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          for(int i = 0; i < n; i++)
          {  
                string temp;
                int v;
                
                cout << "    Диск: "<< i + 1 << endl;
                cout << "\nНазвание фильма: ";           getline(f, temp);   cout << temp << endl;
                cout << "Имя режисера: ";                getline(f, temp);   cout << temp << endl;
                cout << "Продолжительность в минутах: "; f  >> v;            cout << v    << endl;
                cout << "Цена: ";                        (f >> v).get();     cout << v    << endl;
                cout << endl;
          }
          f.close();
      }
   }
}
 
void poisk_cena()
{
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          int rub;
          cout << "Задайте цену: ";
          (cin >> rub).get();
 
          int e = 0; // количество дисков в новой базе
          
          dvd *p = new dvd[n]; // массив для новой базы
  
          for(int i = 0 ; i < n; i++) // чтение из файла во временную структуру
          { 
                dvd temp; 
                getline(f, temp.namefilm); 
                getline(f, temp.namereg);
                f >> temp.prodol;
                (f >> temp.cena).get();
                if (temp.cena < rub) // если цена ниже, то помещаем сруктуру в массив
                {
                    p[e] = temp;
                    e++;
                }
          }
          f.close();      
 
        //вывод на экран и запись в файл новой базы
         f.open("f.txt", ios::out);
         f << e << '\n';
         if (e == 0) cout << "\nДисков в базе нет." << endl << endl;
         for(int i = 0; i < e; i++)
         {  
            cout << "\n    Диск: "                   << i + 1 << endl;
            cout << "\nНазвание фильма: "           << p[i].namefilm << '\n';  f << p[i].namefilm <<'\n';
            cout << "Имя режисера: "                << p[i].namereg  << '\n';  f << p[i].namereg  << '\n';
            cout << "Продолжительность в минутах: " << p[i].prodol   << '\n';  f << p[i].prodol   << '\n';
            cout << "Цена: "                        << p[i].cena     << '\n';  f << p[i].cena     << '\n';
            cout << endl;
         }
         f.close(); 
 
         delete [] p;
     }
  }
}
 
 
int main()
{
    setlocale(LC_ALL,"Russian"); // подключение русского языка
    
    int k; // меню
    do
    {
        cout << endl;
        cout << "1. Создать БД дисков или добавить в базу\n";
        cout << "2. Вывести данные\n";
        cout << "3. Удалить с ценой выше чем...\n";
        cout << "4. Выход\n";
        
        (cin >> k).get();
        switch(k)
        {
            case 1: addvd(); 
                break;
            case 2: print(); 
                break;
            case 3: poisk_cena(); 
                break;
        }
    } while(k != 4 );
 
    system("pause");
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2012, 06:22
Привет! Вот еще темы с ответами:

Структура / Попытка записи в защищенную память - C++
Доброго времени суток. Смотрите, есть следующий код: struct NewsInfo { int ID; char text; int typepost = -1; }; ...

Ошибка "Попытка чтения в запрещенную память" при работе с файлами - C++
Нужно хранить в файле данные со структуры и считывать их. Перепробовал кучу вариантов (fopen и ofstream/ifstream), постоянно одна и та же...

Ошибка записи и чтения объектов - C++
Всем привет. Говорю сразу: Кто сделает этот код рабочим, заплачу 300 р. на PayPal аккаунт (если таковой имеется) Делаю задание...

Как поток чтения (или записи) запихнуть в класс? - C++
Здравствуйте!!! Ребят, подскажите пожалуйста, собственно, как запихнуть в класс поток ifstream? Че-то я озадачен оказался *-) Без...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.11.2012, 06:22
Ответ Создать тему
Опции темы

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