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

вместо закрытия зависает - C++

Восстановить пароль Регистрация
 
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 17:09     вместо закрытия зависает #1
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
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
bool petla = true;
int main();
 
int w = 0;
int age2[] = {17,24};
int age[] = {};
string nema2[] = {"roma","dima"}; 
string name[] = {"roma","dima"};
 
//***************************************************************************************
    
void baza()
{
        do
        {
            
            cout << "vvedite id: ";
            int id;
            cin >> id;
            
            if(id > 0 && id < 3)
            {
                cout << endl << "age: " << age[id-1] << endl << "name: " << name[id-1] << endl;
            }
            
            if(id < 1 || id > 2)
            {
                cout << "error" << endl;
            }
            do
            {
                cout << endl << "hotite prodolzit?: ";
                string vopros;
                cin >> vopros;
                
                if(vopros == "net")
                {
                    cout << endl;
                    main();
                }
                if(vopros != "da" && petla != false)
                {
                    cout << endl << "error(!=(da,net))" << endl;
                }
                if(vopros == "da")
                {
                    cout << endl;
                    baza();
                }
            }
            while(petla);
        }
        while(petla);
}
 
//********************************************************************************
 
void function()
{
            cout << "dopolnitelnie funkchii" << endl
            << "1 - naiti samogo starshego" << endl
            << "2 - naiti srednij vozrast" << endl
            << "3 - redaktor" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl;
            }
            
            if(punct == 1)
            {
                int a = 0;
                int b = 0;
                for(int i = 0 ; i < 2 ; i++)
                {
                    if(a < age[i])
                    {
                        a = age[i];
                        b = i;
                    }
                }
                cout << endl << "age: " << age[b] << endl << "name: " << name[b] << endl << endl;
                main();
            }
            if(punct == 2)
            {
                    int resultat = 0;
                    for(int i = 0 ; i < 2 ; i++)
                    {
                        resultat += age[i];
                    }
                    resultat /= 2;
                    cout << endl << "srednij vozrast: "<< resultat << endl << endl;
                    main();
            }
}
 
//********************************************************************************
 
int main()
{
    fstream file2;
    file2.open ("c:\\bazasave.txt");
    for(int i = 0; i < 2;i++)
    {
        file2 >> age[i];
    }
    file2.close();
        
    cout << "loading baza age" << endl << endl;
 
    system("del c:\\bazasave.txt");
    system("@echo off > c:\\bazasave.txt");
    
    do
    {   
        for(int i = 0;i < 2;i++)
        {
            cout << age[i] << " ";
        }
        cout << endl << endl;
        {
            cout << "punct list" << endl
            << "1 - baza dannix" << endl
            << "2 - dopolnitelnie funkchii" << endl
            << "3 - save end exit" << endl << endl
            << "vvedite punct: ";
            
            int punct;
            cin >> punct;
            
            cout << endl;
            
            if(punct < 1 || punct > 3)
            {
                cout << "error" << endl << endl;
            }
            if(punct == 2)
            {
                function();
            }   
            if(punct == 1)
            {
                baza();
            }
            if(punct == 3)
            {           
                
                fstream file1;
                file1.open ("c:\\bazasave.txt");
                for(int i = 0;i < 2;i++)
                {
                    file1 << age2[i] << " "; 
                }
                file1.close();
                
                petla = false;
                return false;
            }
        }
    }
    while(petla);
}
вот всё работает правильно, однако программа вместо того чтобы выйти зависает (другие операторы выхода не работают)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 17:09     вместо закрытия зависает
Посмотрите здесь:

C++ непосредственная запись данных в файл до его закрытия
Закрытия MessageBox C++
C++ как сместить стандартные кнопки закрытия и сворачивания окна вниз?
Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального C++
C++ Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
05.07.2013, 17:11     вместо закрытия зависает #2
C++
1
main();
Все. Дальше стандарт за работу программы не отвечает, потому что явный вызов main - UB.
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 17:12     вместо закрытия зависает #3
svk2140, у вас одни циклы вложены в другие. может из-за этого?
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 17:13  [ТС]     вместо закрытия зависает #4
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
main();
Все. Дальше стандарт за работу программы не отвечает, потому что явный вызов main - UB.
другие операторы один из них system("exit");
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 17:18     вместо закрытия зависает #5
Цитата Сообщение от svk2140 Посмотреть сообщение
другие операторы один из них system("exit");
это все меняет дело
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 17:20  [ТС]     вместо закрытия зависает #6
я имел ввиду что использовал и system("exit"); гыгы
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 17:29     вместо закрытия зависает #7
svk2140, не надо вызывать функцию main(); гыгы

Добавлено через 2 минуты
с нее начинается выполнение всей программы
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 17:33  [ТС]     вместо закрытия зависает #8
Цитата Сообщение от 120° Посмотреть сообщение
svk2140, не надо вызывать функцию main(); гыгы

Добавлено через 2 минуты
с нее начинается выполнение всей программы
это не от этого
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 17:35     вместо закрытия зависает #9
Цитата Сообщение от svk2140 Посмотреть сообщение
это не от этого
а от чего же тогда?
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 17:38  [ТС]     вместо закрытия зависает #10
Цитата Сообщение от 120° Посмотреть сообщение
а от чего же тогда?
так я у вас спрашиваю)))
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 17:40     вместо закрытия зависает #11
Цитата Сообщение от svk2140 Посмотреть сообщение
так я у вас спрашиваю)))
вот здесь почитайте. может вы пропустили
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.07.2013, 18:47     вместо закрытия зависает #12
C++
1
int age[] = {};
svk2140, вам в других темах говорят, что так ненужно делать, а вы, с упорством, достойным лучшего применения, продолжаете делать. И хотите, чтобы нормально работало.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
05.07.2013, 18:54     вместо закрытия зависает #13
svk2140, Вам указали на ошибки. Исправите их - будет смысл разбираться дальше. А ковыряться в коде, который заведомо имеет UB и не исправляется никому не надо. Вам лень переделывать, а нам тем более!!! Не первая тема, в которой Вам твердят об одной и той же ошибке.
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 254
05.07.2013, 19:44  [ТС]     вместо закрытия зависает #14
Цитата Сообщение от Croessmah Посмотреть сообщение
svk2140, Вам указали на ошибки. Исправите их - будет смысл разбираться дальше. А ковыряться в коде, который заведомо имеет UB и не исправляется никому не надо. Вам лень переделывать, а нам тем более!!! Не первая тема, в которой Вам твердят об одной и той же ошибке.
мне только что вверху указали на ошибку и вы хотите чтобы я сразу же исправил?

Добавлено через 29 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
int age[] = {};
svk2140, вам в других темах говорят, что так ненужно делать, а вы, с упорством, достойным лучшего применения, продолжаете делать. И хотите, чтобы нормально работало.
спасибо глазастенький)

Добавлено через 1 минуту
да всё работает всем спасибо! АДМИНЫ СДЕЛАЙТЕ ЗАКРЫТИЕ ВОПРОСА!!!
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 19:55     вместо закрытия зависает #15
Цитата Сообщение от svk2140 Посмотреть сообщение
вот всё работает правильно,
ничего у вас не работает! эта программа даже не скомпилируется
Цитата Сообщение от svk2140 Посмотреть сообщение
int age[] = {};
alsav22
05.07.2013, 20:44
  #16

Не по теме:

120°, ТС может исправил...

Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
05.07.2013, 21:15     вместо закрытия зависает #17
Цитата Сообщение от svk2140 Посмотреть сообщение
вы хотите чтобы я сразу же исправил?
А это чье? Та же самая ошибка присутствует и Вам на нее указали!
очень странная ошибка с++
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
05.07.2013, 21:41     вместо закрытия зависает #18
Цитата Сообщение от Croessmah Посмотреть сообщение
и Вам на нее указали!
на те же самые грабли и наступаем

Добавлено через 55 секунд
получается, шишку еще не набили
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2013, 21:50     вместо закрытия зависает
Еще ссылки по теме:

Очищает ли операционная система память, после закрытия программы C++
C++ Как задержать окно консоли от закрытия?
После закрытия консоли выплывает необработанное исключение, delete в деструкторе C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
05.07.2013, 21:50     вместо закрытия зависает
  #19

Не по теме:

Цитата Сообщение от 120° Посмотреть сообщение
на те же самые грабли и наступаем
Ну я понимаю, если бы что-то сложное и мудреное... но тут прямым текстом же сказали что нельзя так делать...
Ну ей Богу, ни как ребенку же объяснять - фу, бяка, кака(не футболист, а просто кака)

Yandex
Объявления
05.07.2013, 21:50     вместо закрытия зависает
Ответ Создать тему
Опции темы

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