С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/92: Рейтинг темы: голосов - 92, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
1

Abnormal program termination (аварийное завершение программы)

24.12.2010, 20:40. Показов 17946. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из за чего программа может выдать abnormal program termination (аварийное завершение программы), программа должна открывать файл...и закрывать!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2010, 20:40
Ответы с готовыми решениями:

Floating point error:Domain.Abnormal program termination - ??? это что значит?
Floating point error: Domain. Abnormal program termination #include <stdio.h> #include...

Аварийное завершение программы
Программа завершается аварийно, но в файл записывает требуемую информацию. Укажите косяки. В...

Аварийное завершение программы
#include "B.h" #include "D1.h" #include "D2.h" #include <iostream> #include <typeinfo> ...

Ошибка. Аварийное завершение программы.
Товарищи,есть функция.. cor find(cor start) { cor buf=start; cor pv=NULL; char adr; int...

33
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
24.12.2010, 20:48 2
Цитата Сообщение от Грибочек Посмотреть сообщение
Из за чего программа может выдать abnormal program termination (аварийное завершение программы), программа должна открывать файл...и закрывать!
Дык код напишите, то.
Телепаты в отпуске
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 20:52  [ТС] 3
Цитата Сообщение от knkd Посмотреть сообщение
Дык код напишите, то.
Телепаты в отпуске
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
#include <stdio.h>
#include <conio.h>
void corct();
void fsrch();
void addfn();
void delst();
void refrh();
typedef struct abonent{
    char name[100];
    char login[100];
    char password[100];
    char type[100];
    char date_m[100];
    char date_r[100];
};
abonent mas[100];
FILE *f;
int n=0,c,q=0,i,z=0;
void main(){
    do{
    n=0;
    f=fopen("DB.txt","r+");
    do{
    fscanf(f,"%s %s %s %s %s %s",&mas[n].name,&mas[n].login,&mas[n].password,&mas[n].type,&mas[n].date_m,&mas[n].date_r);
    n++;
    }while(!feof(f));
    fclose(f);
    printf("-------------------------------\n");
    printf("MENY / Q - korugyvatu / W - poshyk / E - dodatu / R - vudalut / T - vuhid /\n");
    c=getch();
    switch(c){
    case 113: //Q
         corct();
         break;
    case 119: //W
         fsrch();
         break;
    case 101: //E
         addfn();
         break;
    case 114: //R
         delst();
         break;
    case 116: //T
         q=1;
         break;
    }
    if(z==0) refrh(); else z=0;
    }while(q==0);
}
void corct(){
    int ch=0,par=0;
    for(i=0;i<n;i++)
    printf("%d | %s %s %s %s %s %s \n",(i+1),mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
    printf("wedite nomer polia i nomer parametra: ");
    scanf("%d %d",&ch,&par);
    if((ch>=(i+1) || ch<1)) printf("Your choise is out of value! \n");
    else
    switch(par){
    case 1:
        printf("Vvedit NAME: ");
        scanf("%s",&mas[ch-1].name);
        break;
    case 2:
        printf("Vvedit LOGIN: ");
        scanf("%s",&mas[ch-1].login);
        break;
    case 3:
        printf("Vvedit PASSWIORD: ");
        scanf("%s",&mas[ch-1].password);
        break;
    case 4:
        printf("vvedit TYPE: ");
        scanf("%s",&mas[ch-1].type);
        break;
    case 5:
        printf("Vvedit MISAC: ");
        scanf("%s",&mas[ch-1].date_m);
        break;
    case 6:
        printf("Vvedit RIK: ");
        scanf("%s",&mas[ch-1].date_r);
        break;
    default: printf("Out of value!\n");
    }
}
void fsrch(){
    int md=0;
    printf("Vvedite nomer parametra: ");
    scanf("%d",&md);
    if(md>6 || md<1) printf("Out of value!\n");
    else{
    for(i=0;i<n;i++){
        switch(md){
        case 1: printf("%d | %s | %s %s %s %s %s \n",i+1,mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r); break;
        case 2: printf("%d | %s | %s %s %s %s %s \n",i+1,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r,mas[i].name); break;
        case 3: printf("%d | %s | %s %s %s %s %s \n",i+1,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r,mas[i].name,mas[i].login); break;
        case 4: printf("%d | %s | %s %s %s %s %s \n",i+1,mas[i].type,mas[i].date_m,mas[i].date_r,mas[i].name,mas[i].login,mas[i].password); break;
        case 5: printf("%d | %s | %s %s %s %s %s \n",i+1,mas[i].date_m,mas[i].date_r,mas[i].name,mas[i].login,mas[i].password,mas[i].type); break;
        }
    }
    }
}
void addfn(){
    printf("dodatu element(name,login,password,type,misac,rik): \n");
    scanf("%s %s %s %s %s %s",&mas[n].name,&mas[n].login,&mas[n].password,&mas[n].type,&mas[n].date_m,&mas[n].date_r);
    n++;
}
void delst(){
    int nmbr=0;
    for(i=0;i<n;i++)
    printf("%d | %s %s %s %s %s %s \n",(i+1),mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
    printf("Vvedite nomer elementa, Yakui treba vidalut ");
    scanf("%d",&nmbr);
    f=fopen("DB.txt","w+");
    nmbr--;
    if(nmbr!=(n-1)){
    for(i=0;i<n;i++){
        if(i!=nmbr){
        if(i<(n-1))
            fprintf(f,"%s %s %s %s %s %s \n",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
        else
            fprintf(f,"%s %s %s %s %s %s",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
        }
    }
    }
    if(nmbr==(n-1)){
    for(i=0;i<n-1;i++){
        if(i<(n-2))
        fprintf(f,"%s %s %s %s %s %s \n",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
        else
        fprintf(f,"%s %s %s %s %s %s",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
    }
    }
    fclose(f);
    z=1;
}
void refrh(){
    f=fopen("DB.txt","w+");
    for(i=0;i<n;i++)
    if(i<(n-1)) fprintf(f,"%s %s %s %s %s %s \n",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
    else fprintf(f,"%s %s %s %s %s %s",mas[i].name,mas[i].login,mas[i].password,mas[i].type,mas[i].date_m,mas[i].date_r);
    fclose(f);
}
ну лучше быть телепатом...
Само открытие файла в мейне, просто не хочу код резать...но если нада только скажите!!
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
24.12.2010, 21:06 4
Даже не разбираясь во всём остальном:
C
1
f=fopen("DB.txt","r+");
После этого должна идти проверка на NULL.
C
1
2
3
4
5
6
const char * name = "DB.txt";
f=fopen(name,"r+");
if (f == NULL) {
    fprintf(stderr, "File %s not found, or inaccessible.\n", name);
    exit(1);
}
Тут по-хорошему, нужно проверять сколько на самом деле прочитано:
C
1
2
3
4
5
int nread;
nread = fscanf(f,"%s %s %s %s %s %s",&mas[n].name,&mas[n].login,&mas[n].password,&mas[n].type,&mas[n].date_m,&mas[n].date_r);
if (nread < <сколько нам нужно>) {
    <пишем сообщение об ошибке и завершаемся>
}
И так далее.
Никому нельзя доверять без проверки, даже себе
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 21:18  [ТС] 5
Тоже самое пишет!
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
24.12.2010, 21:20 6
А из-за вот этого:
C
1
#include <conio.h>
У меня, как и у большинства людей, ничего не скомпилируется.
Потому что это системно-зависимая библиотека, специфичная для компиллятора.

Может в такой простой программе можно обойтись стандартной библиотекой?
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 21:23  [ТС] 7
Цитата Сообщение от knkd Посмотреть сообщение
Может в такой простой программе можно обойтись стандартной библиотекой?
в библиотеке <conio.h> содержится функция getch() в програме она присудствует.
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
24.12.2010, 21:38 8
Цитата Сообщение от Грибочек Посмотреть сообщение
в библиотеке <conio.h> содержится функция getch() в програме она присудствует.
В программе то может и присутствует, но у меня в компиляторе такой нет
А тем временем, в стандартной библиотеке:
C
1
#include <stdio.h>
Есть на выбор функции:
C
1
2
3
4
int getchar(void);
int getc(FILE *stream);
char *gets(char *str);
char *fgets(char *str, int num, FILE *stream);
И многие, многие другие
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 21:47  [ТС] 9
Цитата Сообщение от knkd Посмотреть сообщение
В программе то может и присутствует, но у меня в компиляторе такой нет
А вы проверяли ее у себя на компиляторе?
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 21:55  [ТС] 11
Цитата Сообщение от knkd Посмотреть сообщение
Потому что:
conio.h (от англ. console input-output — консольный ввод-вывод) — заголовочный файл, используемый в старых компиляторах, работающих в операционных системах MS-DOS, для создания текстового интерфейса пользователя. Тем не менее, он не является частью языка программирования Си, стандартной библиотеки языка Си, ISO C или требуемой стандартом POSIX.
так это значит что нужно все таки заменять стандартной библиотекой?
0
0 / 0 / 0
Регистрация: 17.12.2010
Сообщений: 12
24.12.2010, 21:56 12
Цитата Сообщение от knkd Посмотреть сообщение
char *gets(char *str);
а что эта строка делает? извините за оффтоп

Добавлено через 21 секунду
читает строку?
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
24.12.2010, 21:59  [ТС] 13
Цитата Сообщение от Афоня Посмотреть сообщение
а что эта строка делает?
Функция gets() читает символы из стандартного потока stdin и помешает их в массив символов, адресуемый указателем str. Символы читаются до тех пор, пока не встретится разделитель строк или значение EOF.
0
0 / 0 / 0
Регистрация: 17.12.2010
Сообщений: 12
24.12.2010, 22:05 14
спасибки)
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
24.12.2010, 22:06 15
Цитата Сообщение от Грибочек Посмотреть сообщение
так это значит что нужно все таки заменять стандартной библиотекой?
Желательно.
Во-первых - будет работать на любом компилляторе.
Во-вторых - будете изучать язык Си, а не особенности доисторического Борланда


Цитата Сообщение от Афоня Посмотреть сообщение
читает строку?
И записывает её в массив НЕ ПРОВЕРЯЯ ГРАНИЦ!
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
25.12.2010, 01:25  [ТС] 16
я нашла ошибку!!!!!!!!!!!!!
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
25.12.2010, 01:34 17
Столько программировать вредно
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
25.12.2010, 01:43  [ТС] 18
Цитата Сообщение от knkd Посмотреть сообщение
Столько программировать вредно
Мне не вредно, мне полезно!!!!
Завтра нужно лабораторную сдать, ну конечно еще половинку сделать, и переходить на С++
0
37 / 36 / 4
Регистрация: 08.08.2010
Сообщений: 162
25.12.2010, 01:58 19
Сдать и забыть? Эхх
0
0 / 0 / 1
Регистрация: 07.12.2010
Сообщений: 68
25.12.2010, 02:00  [ТС] 20
Цитата Сообщение от knkd Посмотреть сообщение
Сдать и забыть? Эхх
неа...мне понравилось...хочу еще немного помучать свою голову...у меня будет месяц каникут то будет время, просто что сейчас вообще нету времени....
0
25.12.2010, 02:00
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2010, 02:00
Помогаю со студенческими работами здесь

Аварийное завершение работы программы
1)программа работает правильно но когда нажимаю ентер (после этого она должна завершить работу)...

Рекурсивная функция/аварийное завершение программы
Всем привет. Задание такое: есть вырожение Нужно найти такое х, с погрешность 1e-7 или больше,...

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

Аварийное завершение программы (Прата, глава 12, string1)
Доброго времени суток. Не могу понять, из-за чего происходит аварийное завершение программы. VS...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru