Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16

Структура: При попытке просмотра данных о студенте программа крашится. Как исправить?

27.06.2017, 23:52. Показов 3347. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется пустая база данных студентов (для последующего заполнения). Если после заполнения хотя бы одного студента после перезапуска программы при просмотре списка студентов программа крашится. (Функционал еще не доделан, пункта 3 еще нету).
Уже сломал всю голову, не могу понять по чему неправильно записывается файл. Возможно я накосячил и с открытием)
Код
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
//Доделать пункты
//Сортировка
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <conio.h>
#include <iomanip>
#include <stdlib.h>
#include <string>
using namespace std;
int main() {
 
    FILE *fp, *ft;
 
    char another, choice, sort;
 
struct student {
 
        char fam[50], imua[50];
        char otch[50];
        char pol[50];
        char course[100];
 
        int age;
 
    };
    
    setlocale(LC_ALL, ("Russian"));
    int n = 1;
    student *p = new student[n];
    student **q = new student*[n];
    for (int i = 0;i < n;i++)
    q[i] = &p[i];
    char xfam[50], ximua[50], xcource[100], xpol[50];
    int xage;
    long int recsize;
    
    fp=fopen("users.txt","rb+");
 
    if (fp == NULL) {
        fp = fopen("users.txt","wb+");
 
        if (fp==NULL)
        {
             puts("Невозможно открыть файл!");
             return 0;
        }
    }
 
 recsize = sizeof(p);
 
 while(1) {
    setlocale(LC_ALL, ("Russian"));
     system("cls");
     cout << "\n=========== Список студентов ===========";
     cout <<"\n\n                                          ";
     cout << "\n========================================";
     cout << "\n  1. Добавить запись о новом студенте";
     cout << "\n  2. Список студентов";
     cout << "\n  3. Список студентов с сортировкой";
     cout << "\n  4. Редактировать запись о студенте";
     cout << "\n  5. Удалить запись о студенте";
     cout << "\n  6. Выйти из программы";
     cout << "\n========================================";
     cout << "\n";
     cout << "\n Выберите пункт меню:";
     fflush(stdin);
     choice = getche();
     switch(choice)
     {
      case '1' : //Добавление
      n+1;
            fseek(fp,0,SEEK_END);
            another ='Y';
            while(another == 'Y' || another == 'y')
            {
                  system("cls");
                  for(int i = 0 ; i < n ; i++)
                  {
                cout << "Введите фамилию: ";
                cin >> p[i].fam;
                cout << "Введите имя: ";
                cin >> p[i].imua;
                cout << "Введите отчество: ";
                cin >> p[i].otch;
                cout << "Укажите пол: ";
                cin >> p[i].pol;
                cout << "Введите курс: ";
                cin >> p[i].course;
                cout << "Введите возраст: ";
                cin >> p[i].age;
                }
                fwrite(&q,recsize,1,fp);
                cout << "\n Добавить еще одну запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
            }
            break;
            case '3' : //Sorting
          
   case '2': //Просмотр
            system("cls");
           rewind(fp);
           cout << "=== Просмотр списка студентов ===";
           cout << "\n";
           while (fread(&q,recsize,1,fp) == 1){
                for(int i = 0 ; i < n ; i++)
                {
           cout << "\n";
           cout <<"\nФИО     :: " <<q[i] -> fam <<" "<<q[i]->imua<<" "<<q[i]->otch;
           cout <<"\nПол     :: " <<q[i]->pol;
           //cout << "\n";
           cout <<"\nКурс    :: " <<q[i]->course ;
           cout <<"\nВозраст :: "<<q[i]->age;
           }
           }
           cout << "\n\n";
           system("pause");
           break;
 
   case '4' : //Редактирование
            system("cls");
          another = 'Y';
          while (another == 'Y'|| another == 'y')
          {
              cout << "\n Введите имя студента : ";
              cin >> ximua;
 
            rewind(fp);
            while (fread(&q,recsize,1,fp) == 1)
            {
                for(int i = 0 ; i < n ; i++)
                if (strcmp(p[i].imua,ximua) == 0)
                {
                for(int i = 0 ; i < n ; i++)
                {
                cout << "Введите новую фамилию : ";
                cin >> p[i].fam;
                cout << "Введите новое имя : ";
                cin >> p[i].imua;
                cout << "Введите новое отчество: ";
                cin >> p[i].otch;
                cout << "Укажите пол: ";
                cin >> p[i].pol;
                cout << "Введите новый курс    : ";
                cin >> p[i].course;
                cout << "Введите новый возраст   : ";
                cin >> p[i].age;
                }
                fseek(fp, - recsize, SEEK_CUR);
                fwrite(&q,recsize,1,fp);
                break;
                }
                else
                cout<<"Запись о студенте не найдена";
            }
            cout << "\n Изменить другую запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
            }
            break;
 
     case '5': //Удаление
       system("cls");
           another = 'Y';
          while (another == 'Y'|| another == 'y')
          {
             while (fread(&q,recsize,1,fp) == 1){
           cout << "\n";
           for(int i = 0 ; i < n ; i++)
           {
           cout <<"\nФИО     :: " <<p[i].fam <<" "<<p[i].imua<<" "<<p[i].otch;
           cout <<"\nПол     :: " <<p[i].pol;
           //cout << "\n";
           cout <<"\nКурс    :: " <<p[i].course ;
           cout <<"\nВозраст :: "<<p[i].age;
           }
           }
           cout << "\n\n";
              cout << "\n Введите фамилию студента запись о котором нужно удалить : ";
              cin >> xfam;
 
              ft = fopen("temp.dat", "wb");
 
              rewind(fp);
              while (fread (&q, recsize,1,fp) == 1)
                for(int i = 0 ; i < n ; i++)
                 if (strcmp(p[i].imua,ximua) != 0)
                {
                    n-1;
                    fwrite(&q,recsize,1,ft);
                }
                fclose(fp);
                fclose(ft);
                remove("users.txt");
                rename("temp.dat","users.txt");
 
                fp=fopen("users.txt","rb+");
 
                cout << "\n Удалить другую запись? (Y/N) ";
                fflush(stdin);
                another = getchar();
              }
              break;
 
              case '6': //Закрытие программы
              fclose(fp);
              cout << "\n\n";
              cout << "\t\t     Закрытие программы...";
              cout << "\n\n";
              exit(0);
          }
     }
system("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2017, 23:52
Ответы с готовыми решениями:

Программа крашится при попытке распечатать массив
Доброго времени суток. Имеется программа, которая в мейне инициализирует двухмерный динамический массив, количество строк и столбцов...

Программа крашится при попытке чтения числа с плавающей точкой
Первый пост, немного волнительно :) Помогаю другу с курсовой. Вчера он мне кинул код, который вылетает при попытке чтения числа с...

Крашится программа при попытке присваивания значения элементу дин-го массива
Не могу понять в чём ошибка. Я только учусь, поэтому возможно, что ошибка элементарная. Вот шаблон класса множество. Хотел написать...

29
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
28.06.2017, 19: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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
 
#define VVOD cout << "Введите фамилию: ";\
cin >> p[i].surname;\
cout << "Введите имя: ";\
cin >> p[i].name;\
cout << "Введите отчество: ";\
cin >> p[i].patr;\
cout << "Укажите пол: ";\
cin >> p[i].sex;\
cout << "Введите курс: ";\
cin >> p[i].clas;\
cout << "Введите возраст: ";\
cin >> p[i].age;
 
#define FIND_ERR cout << "Студент не найден!";
 
 
using namespace std;
 
struct student {
 
    bool status = false;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    char surname[50], name[50], patr[50], sex[50], clas[50];
    int age;
 
};
 
int add_new(student*, int);//добавить нового студента
int del_n(student*, int);//удалить студента
int change_n(student*, int);//изменить студента
int show_origin(student*, int);//показать список
int show_sort(student*, int);//показать сортированный список
int save(student*, short);//сохраняет БД в файл
int compare(const void *, const void *);
 
int main() {
 
 
    setlocale(LC_ALL, ("Russian"));
    int n = 10;
    student *p = new student[n];
 
    while (1) {
        setlocale(LC_ALL, ("Russian"));
        system("cls");
        cout << "\n=========== Список студентов ===========";
        cout << "\n\n                                          ";
        cout << "\n========================================";
        cout << "\n  1. Добавить запись о новом студенте";
        cout << "\n  2. Список студентов";
        cout << "\n  3. Список студентов с сортировкой";
        cout << "\n  4. Редактировать запись о студенте";
        cout << "\n  5. Удалить запись о студенте";
        cout << "\n  6. Сохранить БД в файл";
        cout << "\n  7. Выйти из программы";
        cout << "\n========================================";
        cout << "\n";
        cout << "\n Выберите пункт меню:";
        char choice;
        choice = getche();
        system("cls");
        switch (choice)
        {
        case '1':           add_new(p, n);          break;
        case '2':           show_origin(p, n);          break;
        case '3':           show_sort(p, n);            break;
        case '4':           change_n(p, n);         break;
        case '5':           del_n(p, n);            break;
        case '6':           save(p, n);         break;
        case '7': //Закрытие программы
            cout << "\n\n";
            cout << "\t\t     Закрытие программы...";
            cout << "\n\n";
            exit(0);
        }
        system("pause");
    }
    system("pause");
    return 0;
}
 
int add_new(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (!p[i].status) {
            VVOD
                p[i].status = true;
            return 0;
        }
    }
    cout << "База переполнена!";
}
 
int del_n(student* p, int n) {
    cout << "Введите точную фамилию, для удаления студента из базы: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            p[i].status = false;
            return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int change_n(student* p, int n) {
    cout << "Введите точную фамилию, для изменения студента в базе: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            VVOD
                return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int show_origin(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (p[i].status) {
            cout << "Фамилия: " << p[i].surname << endl;
            cout << "Имя: " << p[i].name << endl;
            cout << "Отчество: " << p[i].patr << endl;
            cout << "Пол: " << p[i].sex << endl;
            cout << "Курс: " << p[i].clas << endl;
            cout << "Возраст: " << p[i].age << endl << endl;
        }
    }
    return 0;
}
 
int show_sort(student* p, int n) {
    student *p2 = new student[n];
    for (auto i = 0; i < n; i++) {
        p2[i] = p[i];
    }
    qsort(p2, n, sizeof(student), compare);
    show_origin(p2, n);
    return 0;
}
 
int compare(const void * val1, const void * val2) {
    student *p1 = (student*)val1;
    student *p2 = (student*)val2;
    return strcmp(p1->surname, p2->surname);
}
 
int save(student* p, short n) {
    ofstream fileout("outbin.dat", ios::binary);
    fileout.write((char*)&n, sizeof n);
    for (auto i = 0; i < n; i++) {
        fileout.write(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    fileout.close();
    return 0;
}
Добавлено через 2 минуты
drelay, так в ТЗ я ж специально уточнял.) Функции считывания с файла БД нет.
Цитата Сообщение от drelay Посмотреть сообщение
(саму базу будет заполнять преподаватель через консоль)
Добавлено через 2 минуты
В общем, у меня пол третьего ночи, если сильно надо, может найдутся добрые люди, которые прикрутят функцию считать БД. Но мне пора)
Моешь сам дописать, там не сложно. (если я правильно в последней правке записываю файл хD)

Добавлено через 4 минуты
upd Ага, не очень правильно я записал, но длина фиксированная у всех строк и мы ее знаем, так что можно считать) Я буду часов через 9ть
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
28.06.2017, 19:36
Цитата Сообщение от YarRainbow Посмотреть сообщение
не очень правильно я записал
Нормально.

Добавлено через 3 минуты
Для порядка, нужно структуру выровнять по байту:
C++
1
2
3
4
5
6
7
#pragma pack(push,1)
struct student
{
    // ....
    
};
#pragma pack(pop)
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
29.06.2017, 10:24
drelay, разобрался с чтением?
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 12:28  [ТС]
Не-а не разобрался. И сортировка кстати тоже должна быть из файла
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.06.2017, 12:35
Цитата Сообщение от drelay Посмотреть сообщение
И сортировка кстати тоже должна быть из файла
Как вы себе это представляете?
Данные сначала нужно загрузить из файла, а потом сортировать.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 12:57  [ТС]
Эту часть нужно дописать, у меня к сожалению возможности сейчас нет я на зачёте . Вчера пробовал, не получилось
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
29.06.2017, 16:27
Лучший ответ Сообщение было отмечено drelay как решение

Решение

drelay, функция сортировки есть, не надо ничего в нее дописывать. Просто вызывайте в нужный момент. Чтение записанной БД из файла в массив структур покажу вечером, как время найду. Пока не за компьютером.

Добавлено через 3 часа 19 минут
drelay, добавил функцию подгружающую сохраненную БД из бинарника. То есть, вводишь данные, сохраняешь, перезапускаешь программу, проверяешь пустой список, загружаешь - вуаля!
Можешь добавить функцию load() куда-нибудь в начало (перед циклом while), будет автоматически подгружать при запуске программы последнюю сохраненную БД.
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
169
170
171
172
173
174
175
176
177
178
179
180
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
 
#define VVOD cout << "Введите фамилию: ";\
cin >> p[i].surname;\
cout << "Введите имя: ";\
cin >> p[i].name;\
cout << "Введите отчество: ";\
cin >> p[i].patr;\
cout << "Укажите пол: ";\
cin >> p[i].sex;\
cout << "Введите курс: ";\
cin >> p[i].clas;\
cout << "Введите возраст: ";\
cin >> p[i].age;
 
#define FIND_ERR cout << "Студент не найден!";
 
 
using namespace std;
 
struct student {
 
    bool status = false;// сигнализирует о том, заполнена ли эта структура или, например, удалена
    char surname[50], name[50], patr[50], sex[50], clas[50];
    int age;
 
};
 
int add_new(student*, int);//добавить нового студента
int del_n(student*, int);//удалить студента
int change_n(student*, int);//изменить студента
int show_origin(student*, int);//показать список
int show_sort(student*, int);//показать сортированный список
int save(student*, short);//сохраняет БД в файл
int load(student*, short);//загружает БД из файла
int compare(const void *, const void *);//функция сравнения для qsort()
 
int main() {
 
 
    setlocale(LC_ALL, ("Russian"));
    int n = 10;
    student *p = new student[n];
 
    while (1) {
        setlocale(LC_ALL, ("Russian"));
        system("cls");
        cout << "\n=========== Список студентов ===========";
        cout << "\n\n                                          ";
        cout << "\n========================================";
        cout << "\n  1. Добавить запись о новом студенте";
        cout << "\n  2. Список студентов";
        cout << "\n  3. Список студентов с сортировкой";
        cout << "\n  4. Редактировать запись о студенте";
        cout << "\n  5. Удалить запись о студенте";
        cout << "\n  6. Сохранить БД в файл";
        cout << "\n  7. Загрузить БД из файла";
        cout << "\n  8. Выйти из программы";
        cout << "\n========================================";
        cout << "\n";
        cout << "\n Выберите пункт меню:";
        char choice;
        choice = getche();
        system("cls");
        switch (choice)
        {
        case '1':           add_new(p, n);          break;
        case '2':           show_origin(p, n);          break;
        case '3':           show_sort(p, n);            break;
        case '4':           change_n(p, n);         break;
        case '5':           del_n(p, n);            break;
        case '6':           save(p, n);         break;
        case '7':           load(p, n);         break;
        case '8': //Закрытие программы
            cout << "\n\n";
            cout << "\t\t     Закрытие программы...";
            cout << "\n\n";
            exit(0);
        }
        system("pause");
    }
    system("pause");
    return 0;
}
 
int add_new(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (!p[i].status) {
            VVOD
                p[i].status = true;
            return 0;
        }
    }
    cout << "База переполнена!";
}
 
int del_n(student* p, int n) {
    cout << "Введите точную фамилию, для удаления студента из базы: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            p[i].status = false;
            return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int change_n(student* p, int n) {
    cout << "Введите точную фамилию, для изменения студента в базе: ";
    string search;
    cin >> search;
    for (auto i = 0; i < n; i++) {
        if (p[i].status && p[i].surname == search) {
            VVOD
                return 0;
        }
    }
    FIND_ERR
        return 1;
}
 
int show_origin(student* p, int n) {
    for (auto i = 0; i < n; i++) {
        if (p[i].status) {
            cout << "Фамилия: " << p[i].surname << endl;
            cout << "Имя: " << p[i].name << endl;
            cout << "Отчество: " << p[i].patr << endl;
            cout << "Пол: " << p[i].sex << endl;
            cout << "Курс: " << p[i].clas << endl;
            cout << "Возраст: " << p[i].age << endl << endl;
        }
    }
    return 0;
}
 
int show_sort(student* p, int n) {
    student *p2 = new student[n];
    for (auto i = 0; i < n; i++) {
        p2[i] = p[i];
    }
    qsort(p2, n, sizeof(student), compare);
    show_origin(p2, n);
    return 0;
}
 
int compare(const void * val1, const void * val2) {
    student *p1 = (student*)val1;
    student *p2 = (student*)val2;
    return strcmp(p1->surname, p2->surname);
}
 
int save(student* p, short n) {
    ofstream fileout("savebin.dat", ios::binary);
    fileout.write((char*)&n, sizeof n);
    for (auto i = 0; i < n; i++) {
        fileout.write(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    fileout.close();
    return 0;
}
 
int load(student* p, short n) {
    ifstream filein("savebin.dat", ios::binary);
    short x;
    filein.read((char*)&x, sizeof x);
    if (x > n) {
        cout << "Ошибка: слишком большой размер загружаемой БД.";
    }
    for (auto i = 0; i < n; i++) {
        filein.read(reinterpret_cast<char*>(&p[i]), sizeof(student));
    }
    filein.close();
    return 0;
}
PS Кстати, я добавил там проверку на несоответствие БД, но как оно будет работать, если ты вдруг n будешь задавать вручную при запуске - не проверял. То есть, при загрузке меньшей сохраненной базы в большую я не знаю, как будет вести себя программа.

Добавлено через 6 минут
UPD. Все нормально. Можно n вводить при запуске программы даже, все будет обрабатываться отлично, будут вылазить предусмотренные программой ошибки и предупреждения. То есть, я пытался сломать программу, оперируя каждый раз разным по размеру массивом структур, не выходит.
0
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
29.06.2017, 20:33  [ТС]
Удаление тоже происходит из файла?

Добавлено через 38 секунд
Нет возможности шасси проверить
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
30.06.2017, 05:59
Лучший ответ Сообщение было отмечено drelay как решение

Решение

drelay, работают с файлами две функции: save() и load(). Больше и не надо. Все операции происходят в программе, потому что так надо. Если вы хотите чтобы удалялось, сортировалось, изменялось сразу в файле, просто добавьте функцию save() в самый конец цикла while.
Кликните здесь для просмотра всего текста
(и не забудьте тогда добавить load() непосредственно перед while, иначе рискуете при перезапуске ненароком потерять прошлую БД, случайно перезаписав ее)
Тогда сохранение будет происходить автоматически, после каждой операции. Но это не очень хороший способ демонстрации функций работы с файлами.
Напрямую удалять и изменять в файле, конечно, можно, но лучше забудьте про это. Это в данном конкретном случае вообще ни к чему.

Добавлено через 7 минут
PS Что-то еще непонятно? Может я плохо объясняю?
1
0 / 0 / 0
Регистрация: 24.06.2017
Сообщений: 16
30.06.2017, 11:06  [ТС]
Спасибо большое, все работает. Все как нужно было) +rep
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.06.2017, 11:06

Программа крашится при вводе данных
Вот этот код скопирован из учебника. На моем компьютере почему то запускается программа но при вводе 1.2 3.4 5.6| просто выключается и все....

Исправить вывод данных о студенте
Здравствуйте, помогите пожалуйста с такой проблемкой, когда ввожу данные о студенте (фамилию, имя, отчество и и тд.) и затем пытаюсь...

Приложение крашится при попытке инициализировать searchview
Кто может подсказать, что я делаю не правильно Приложение рушится на попытке инициализировать элемент SearchView на вот этой строчке ...

Крашится при попытке открытия простой страницы через QWebView
крашится при попытки открытия простой страницы через qwebView

При загрузки текста из файла в combobox1 кодировка крашится в неизвестный формат символов как исправить?
comboBox2.Items.AddRange(File.ReadAllLines(&quot;Sporting_achievement.txt&quot;)); Добавлено через 2 минуты Пробовал так получают один вид...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru