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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм генерации перестановок в лексикографическом порядке http://www.cyberforum.ru/cpp-beginners/thread682668.html
У меня проблема. Нужно перебрать все лексикографически следующие перестановки. Вот мой код. Одна перестановка делается, а дальше я не знаю, как мне повторить все мои действия для этой перестановки и так дали до конечной. Если нужно, то вот Алгоритм генерации перестановок в лексикографическом порядке: 1. Просматриваем а1, ..., аn с конца до тех пор, пока не попадется ai<ai+1. Если таковых...
C++ Нажатие клавиши программно Здравствуйте, а сложно сделать программу: Нажатие клавиши (прописаной в самом коде) в программе (прописаной в самом кодк) с определённыи интервалом времени. т.е. просто запустить программку и она будет нажимать клавишу каждую минуту . это реально ? http://www.cyberforum.ru/cpp-beginners/thread682656.html
C++ Циклы с условием окончания
Помогите пож-ста написать код программы
C++ Оператор For и дроби
Написать при помощи оператора For..... которая считает величину (см. прикрепленный файл) { int n,K; float S,a; n=StrToInt(Edit1->Text); K=1; S=0; for(K<=n;K++;) { a=1/(2*K+2.0)+1/(2*K);
C++ генерация случайных букв http://www.cyberforum.ru/cpp-beginners/thread682629.html
как можно с помощью рандома запрограммировать режим генерации случайных букв (для азбуки Морзе)? есть маленькие соображения но думаю они не верны, знаний маловато. Или это вообще делается не так? #include <random> int n={A||a;Z||z}; random() % n; // случайная буква от A(a) до Z(z)
C++ Найти книгу с определенным название Определить, имеется ли в списке учебников книга с определенным названием. Если да, то вывести фамилию автора, название и год издания. подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.10.2012, 02:06     Ошибка : Попытка чтения или записи в защищенную память
Код
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;
}
 
Текущее время: 07:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru