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

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

Войти
Регистрация
Восстановить пароль
 
 
svk2140
-8 / 0 / 1
Регистрация: 04.07.2013
Сообщений: 282
#1

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

05.07.2013, 17:09. Просмотров 493. Ответов 18
Метки нет (Все метки)

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);
}
вот всё работает правильно, однако программа вместо того чтобы выйти зависает (другие операторы выхода не работают)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2013, 17:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос вместо закрытия зависает (C++):

Модифицируйте, пожалуйста, программу так, чтобы вместо 0 выводилось “false”, а вместо 1 – ”true” - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { bool y, x; bool sq={ {0,0}, {0,1}, ...

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального - C++
Не понимаю, что не так, помогите исправить код. #include&lt;conio.h&gt; #include&lt;iostream&gt; #include&lt;stdlib.h&gt; using namespace std; ...

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального - C++
Попробовал написать, но что-то не получилось. Помогите исправить. int main() { int i, min, max; int array; for(i=0; i&lt;10;...

Закрытия MessageBox - C++
Добрый день как программно можно закрыть окно MessageBox без нажатия кнопки OK

Вывести станции в порядке их закрытия - C++
В городе есть метро, состоящее из N станций и M линий, соединяющих их. Каждая линия обеспечивает проезд между любыми двумя станциями в обе...

Команда для закрытия программы в с++ - C++
Помогите, я новичок в с и еще не все понимаю, подскажите как сделать что бы при нажатии на &quot;3&quot; программа закрывалась. Заранее спасибо !! ...

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

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

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

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

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

Как задержать окно консоли от закрытия? - C++
в общем ребята в чем суть дела, я решил пройти книгу Б. Страуструп &quot;Программирование. Принципы и практика использования С++&quot;, и нелепая...

Непосредственная запись данных в файл до его закрытия - C++
пока файл не закроешь после записи - новые данные там не появятся ( вроде кэширование windows в этом виновато, хз), чтоб &quot;обновить&quot; файл...

Очищает ли операционная система память, после закрытия программы - C++
Очищает ли операционная система память, после закрытия программы. То-есть, следует ли очищать динамически распределенную память при...

как сместить стандартные кнопки закрытия и сворачивания окна вниз? - C++
возможно ли такое? в идеале должно быть овальное окно с кнопками закрыть и свернуть внизу справа...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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