Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие функций! передача выполнения от одной, к другой 
V
    Опции темы
Jakeroid
Дата 9.8.2009, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Вообщем такая структура:
Код

int dnumber()
 {
        //Часть кода вырезал, так как он не влияет на работу программы
         int exit;
         cin >> exit;

         if(exit==1)//Выполняю проверку, если 1 то выполню функцию еще раз
           {
               dnumber();
           }

        if(exit==0)//Сдесь хочу, что бы если пользователь ввел 0, то передалось выполнение в chosemenu()
           {
               int chosemenu();
           }

     return 0;
 }
int chosemenu()
 {

    //Часть кода вырезал, так как он не влияет на работу программы

    int nmenu;
    cin >> nmenu;
    
    switch(nmenu)
    case 1: dnumber();
              
                       
     return 0;
 }
int main(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,".OCP");
    wchar_t welcomescreen[200] = L"Jmath v1.01 запущено. Разработчик Jak(e)roid.";
        
        wcout << welcomescreen << endl;
        chosemenu();
        
             
        return 0;
}

Я так понимаю, что нахимичил тут:
Код

 if(exit==0)//Сдесь хочу, что бы если пользователь ввел 0, то передалось выполнение в chosemenu()
  {
           int chosemenu();
  }

Просто может я плохо читал, или устал и не доходит, но подскажите как вернуть выполнение из dnumber в chosemenu?

Добавлено через 7 минут и 16 секунд
Я вот понял, почему прога просто завершает свое выполнение. Потому что я создаю пустую функцию
Код

int chosemenu()

а потом
Код

return 0;

И собственно больше ничего и не нужно. Вопрос, как передать тогда выполнение, ошибка понятна, но как правильно не знаю, или просто не доходит.

Это сообщение отредактировал(а) Jakeroid - 9.8.2009, 23:28
PM MAIL   Вверх
andrew_121
Дата 9.8.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Если я правильно понял, то так:
Код

        if(exit==0)//Сдесь хочу, что бы если пользователь ввел 0, то передалось выполнение в chosemenu()
           {
               chosemenu();
           }


Добавлено через 4 минуты и 25 секунд
Но лучше так:
Код

void func1() {
}

void func2() {
}

void func3() {
}

int main(int argc, const char** argv) {
   int key = 0;
   std::cin >> key;
   while ( key != 0 ) {
      switch ( key ) {
         case 1: func1(); break;
         case 2: func2(); break;
         case 3: func3(); break;
         default: break;
      }
   std::cin >> key;
   }
   return 0;
}



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Jakeroid
Дата 10.8.2009, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



Если так:
Код

if(exit==0)
           {
               chosemenu();
           }

Компилятор ругаеться на "error C3861: chosemenu: идентификатор не найден".

А за код спасибо!
PM MAIL   Вверх
andrew_121
Дата 10.8.2009, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



перед всем кодом помести эту строку:
Код

int chosemenu();

Это называется "декларация".


Это сообщение отредактировал(а) andrew_121 - 10.8.2009, 00:45


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Jakeroid
Дата 10.8.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 15.3.2009

Репутация: нет
Всего: нет



andrew_121
Спасибо smile. Я кажется понял, как еще можно было исправить. Завтра на свежую голову сделаю. 
Решил не откладывать до завтра, и сделал сегодня. Только вот совсем запутанно. Ваш код самый нормальный, мой громозкий. Наверно потому, что это моя первая программа. Хотя вру, у меня была еще до нее одна на Pascal'e, но функционалом она была похуже smile.

Это сообщение отредактировал(а) Jakeroid - 10.8.2009, 00:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.