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

Выход из программы и самопроизвольное выполнение пункта - C++

Восстановить пароль Регистрация
 
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 15:39     Выход из программы и самопроизвольное выполнение пункта #1
При запуске программы открывается меню. Если выбрать игра, то все в норме. Если выбрать помощь, то открывается помощь и сразу в след за ней открывается игра( как так?), если выбрать третий пункт, то выводится сообщение из третьего пункта, а затем открывается игра( почему?). Почему игра открывается сама по себе всегда? Как сделать выход из программы, то есть при нажатии "3", чтобы cmd окно закрывалось?

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
#include <iostream>
using namespace std;
void help();
void keep();
int main()
{
    int gran; // ограничение по размеру числа
    int magic; // магическое число
    int flg; // число юзера
    int a;
    hex: cout << "Hi. This is game intuiciya\n\n1.Game\n2.Help\n3.Exit\n" << '\n' << "Your choose:  ";
    cin >> a;
    cout << '\n';
    switch(a) 
     {
    case 1:
        goto save;
        break;
    case 2: 
        help();
        break;
    case 3:
        void keep();
        break;
    
    default:
        cout << "You can write 1 or 3\n";
            goto hex;
         }
    save: cout << "Write max. number:   ";
    cin >> gran;
    cout << '\n' << '\n';
    src:
    cout << "Write number 1-" << gran << ": ";
    cin >> flg;
    cout << '\n';
    if( flg <= gran) goto rand;
        else cout << "You number > maximum'a\n" << '\n';
            goto src;
rand: magic = (rand() +4)/2;
    if( magic > gran) {
        goto rand;
    }
 
    else {
        cout << "Magic number was is:   " << magic << '\n' << '\n';
        if( magic == flg) {
            cout << "YOU WINNER! Your number is true!\n" << '\n';
            goto hex;
        }
        else cout << "Sorry brother, your number is false.\n" << '\n' << "Go next!\n";
        goto src;
        system("PAUSE");
    }
}
void help()
{
    cout << "Game writig on C++. Production by florgas(c) 2011\nFor game write max. number and your number\nFor going back press '0'\n" << '\n';
}
void keep()
{
    cout << "Bye";
}

P.S. я только лишь начинаю с++ изучать, поэтому за такие вопросы тапками не кидайтесь)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 15:39     Выход из программы и самопроизвольное выполнение пункта
Посмотрите здесь:

Выход из программы C++
C++ выход из программы
Принудительный выход из программы C++
C++ самопроизвольный выход программы
Выход из программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.07.2011, 15:42     Выход из программы и самопроизвольное выполнение пункта #2
Цитата Сообщение от florgas Посмотреть сообщение
P.S. я только лишь начинаю с++ изучать, поэтому за такие вопросы тапками не кидайтесь)
не используйте метки - Вы погубите себя и заработаете геморрой...
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.07.2011, 15:43     Выход из программы и самопроизвольное выполнение пункта #3
"спагетти"
florgas
26.07.2011, 15:45  [ТС]
  #4

Не по теме:

Net_Wanderer, Я же написал, что только лишь начинаю изучать С++))
Ты еще моих крестиков-ноликов не видел... каждый вариант возможный через switch прописал))
Но не в этом суть...

Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.07.2011, 15:45     Выход из программы и самопроизвольное выполнение пункта #5
C++
1
2
3
4
5
6
7
8
void help()
{
        cout << "Game writig on C++. Production by florgas(c) 2011\nFor game write max. number and your number\nFor going back press '0'\n" << '\n';
}
void keep()
{
        cout << "Bye";
}
зачем??? не проще ли просто сообщение прописывать, а не вызывать функцию каждый раз, когда необходимо?
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 15:47  [ТС]     Выход из программы и самопроизвольное выполнение пункта #6
ХЗ, вот void keep() надо эту функцию переделать под выход из программы, а я хз как...
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.07.2011, 15:50     Выход из программы и самопроизвольное выполнение пункта #7
florgas, если только начали изучать, то еще не поздно выбросить Ваш учебник и взять какой-нить нормальный ( 100500 раз обсуждались эти книги на форуме ) и самому попробовать переписать все заново без использования этих "идиотских, неуместных" меток, а то это читать не возможно...
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.07.2011, 15:51     Выход из программы и самопроизвольное выполнение пункта #8
Цитата Сообщение от florgas Посмотреть сообщение
ХЗ, вот void keep() надо эту функцию переделать под выход из программы, а я хз как...
Можно сделать так:
C++
1
2
3
4
        case 3:
                void keep();
                return 0;
                break;
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
26.07.2011, 15:53     Выход из программы и самопроизвольное выполнение пункта #9
C++
1
2
      case 3:
                return(0);
И всю фигню с выбором в цикл
и
C++
1
2
else { cout << "Sorry brother, your number is false.\n" << '\n' << "Go next!\n";
                goto src; }
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
26.07.2011, 15:54     Выход из программы и самопроизвольное выполнение пункта #10
Цитата Сообщение от florgas Посмотреть сообщение
void keep() надо эту функцию переделать под выход из программы, а я хз как...
C++
1
2
3
4
5
void keep()
{
    std::cout << "Bye" << std::endl;
    return 0;
}
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 15:56  [ТС]     Выход из программы и самопроизвольное выполнение пункта #11
mimicria, как это в цикл? Можешь переделать программу?)
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.07.2011, 15:59     Выход из программы и самопроизвольное выполнение пункта #12
Цитата Сообщение от Mиxaил Посмотреть сообщение
C++
1
2
3
4
5
void keep()
{
    std::cout << "Bye" << std::endl;
    return 0;
}
Это не скомпилируется, return воспримится не как return из main'a, а как return из функции keep, в которой тип возвращаемого значения void, а вы будете пытаться возвратить int.
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 16:03  [ТС]     Выход из программы и самопроизвольное выполнение пункта #13
Net_Wanderer, +1. Я уже так пробовал)
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
26.07.2011, 16:03     Выход из программы и самопроизвольное выполнение пункта #14
delete pls
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
26.07.2011, 16:04     Выход из программы и самопроизвольное выполнение пункта #15
Цитата Сообщение от florgas Посмотреть сообщение
Net_Wanderer, +1. Я уже так пробовал)
Это ничего не меняет, сделайте как вам сказал Mиxaил - перепишите программу без использования меток.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
26.07.2011, 16:23     Выход из программы и самопроизвольное выполнение пункта #16
Цитата Сообщение от florgas Посмотреть сообщение
mimicria, как это в цикл? Можешь переделать программу?)
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
#include <iostream>
using namespace std;
void help();
void keep();
int main()
{
 int gran; // îãðГ*Г*ГЁГ·ГҐГ*ГЁГҐ ГЇГ® Г°Г*çìåðó Г·ГЁГ±Г«Г*
 int magic; // Г¬Г*ãè÷åñêîå ÷èñëî
 int flg; // ÷èñëî þçåðГ*
 int a;
 while (true)
 {
  cout << "Hi. This is game intuiciya\n\n1.Game\n2.Help\n3.Exit\n" << '\n' << "Your choose:  ";
  cin >> a;
  cout << '\n';
  switch(a)
  {
   case 1:
   {
    cout << "Write max. number:       ";
    cin >> gran;
    cout << '\n' << '\n';
    while (true)
    {
     flg=gran+1;
     while (flg>gran)
     {
      cout << "Write number 1-" << gran << ": ";
      cin >> flg;
      cout << '\n';
      if( flg > gran) cout << "You number > maximum'a\n" << '\n';
     }
     magic=gran+1;
     while (magic > gran)
       magic = (rand() +4)/2;
     cout << "Magic number is:   " << magic << '\n' << '\n';
     if( magic == flg)
     {
      cout << "YOU WINNER! Your number is true!\n" << '\n';
      break;
     }
     else
     {
      cout << "Sorry brother, your number is false.\n" << '\n' << "Go next!\n";
      continue;
     }
    }
    break;
   }
   case 2:
   {
    help();
    break;
   }
   case 3:
   {
    void keep();
    return (0);
   }
   default:
   {
    cout << "You can write 1 or 3\n";
  }
 }
}
}
void help()
{
        cout << "Game writig on C++. Production by florgas(c) 2011\nFor game write max. number and your number\nFor going back press '0'\n" << '\n';
}
void keep()
{
        cout << "Bye";
}
Добавлено через 4 минуты
Поясните мне только эпический смысл вот этого?
C++
1
magic = (rand() +4)/2;
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 16:25  [ТС]     Выход из программы и самопроизвольное выполнение пункта #17
Ну так... просто стандартные числа 41... меня уже бесят)
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
26.07.2011, 16:28     Выход из программы и самопроизвольное выполнение пункта #18
Они и будут стандартные, ибо надо в начале программы
C++
1
srand ( time(NULL) );
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 16:31  [ТС]     Выход из программы и самопроизвольное выполнение пункта #19
А кто-нибудь может объяснить почему первый пункт switch'а выполняется самопроизвольно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2011, 16:36     Выход из программы и самопроизвольное выполнение пункта
Еще ссылки по теме:

C++ выход из программы
Выход из программы C++
C++ Выход из программы

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

Или воспользуйтесь поиском по форуму:
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
26.07.2011, 16:36  [ТС]     Выход из программы и самопроизвольное выполнение пункта #20
Вот сама программа откомпилированная
Вложения
Тип файла: rar intuiciya.rar (10.4 Кб, 7 просмотров)
Yandex
Объявления
26.07.2011, 16:36     Выход из программы и самопроизвольное выполнение пункта
Ответ Создать тему
Опции темы

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