Пятница, 19 Апреля 2024, 11:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Не работает код (а надо))
Не работает код
nazar79Дата: Воскресенье, 22 Декабря 2013, 22:14 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Доброго времени суток.
Помогите решить проблему
Код
#include <iostream>
#include <conio.h>
#include <clocale>
using namespace std;
int files;
int disc_D();
int disc_E();
int disc_C();
int resursefunction()
{
  char s;
  cout << "Выберите диск" << endl;
  cout <<"1-D:\\" << endl;
  cout <<"2-C:\\" << endl;
  cout <<"3-E:\\" << endl;
  cout <<"0 - рабочий стол" << endl;
  cin >> s;
  if(s == '1')
  {
   return disc_D();
  }
  if(s == '2')
  {
   return disc_C();
  }
  if(s == '3')
  {
   return disc_E();
  }
  if(s == '0')
  {
   return main();
  }
  _getch();
}
int main()
{
  char vibor;
  setlocale( LC_ALL, "Russian" );
  cout << "\t\t\t\tРабочий стол" << endl;
  cout << "\n\n";
  cout << "1-Управление ресурсами" << endl;
  cout << "2-Программы" << endl;
  cout << "3-Игры" << endl;
  cout << "4-Выход из системы" << endl;
  cin >> vibor;
  if(vibor == '1')
  {
   resursefunction();
  }
  _getch();
  return main();
}
int disc_D()
{
  int res, a;
  char vv;
  cout << "D:\\" << endl;
  cout << "На диске" << endl;
  cout << "5 - папок" << endl;
  cout << files << " - файлов" << endl;
  cout << "1 - создать файл" << endl;
  cout << "2 - удалить файл" << endl;
  cout << "0 - назад" << endl;
  cin >> vv;
  if(vv == '1')
  {
   cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
   res = files + a;
  }
  if(vv == '2')
  {
   cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
   res = files - a;
  }
  if(vv == '0')
  {
   return resursefunction();
  }
  files = res;
  return disc_D();
}
int disc_E()
{
  int res, a;
  char vv;
  cout << "E:\\" << endl;
  cout << "На диске" << endl;
  cout << "7 - папок" << endl;
  cout << files << " - файлов" << endl;
  cout << "1 - создать файл" << endl;
  cout << "2 - удалить файл" << endl;
  cout << "0 - назад" << endl;
  cin >> vv;
  if(vv = '1')
  {
   cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
   res = files + a;
  }
  if(vv == '2')
  {
   cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
   res = files - a;
  }
  if(vv == '0')
  {
   return resursefunction();
  }
  files = res;
  return disc_E();
}
int disc_C()
{
  int res, a;
  char vv;
  cout << "C:\\" << endl;
  cout << "На диске" << endl;
  cout << "5 - папок" << endl;
  cout << files << " - файлов" << endl;
  cout << "1 - создать файл" << endl;
  cout << "2 - удалить файл" << endl;
  cout << "0 - назад" << endl;
  cin >> vv;
  if(vv = '1')
  {
   cout << "Введите сколько создать файлов"; cin >> a; res = files + a;
   res = files + a;
  }
  if(vv == '2')
  {
   cout << "Введите сколько удалить файлов"; cin >> a; res = files - a;
   res = files - a;
  }
  if(vv == '0')
  {
   return resursefunction();
  }
  files = res;
  return disc_C();
}

С меня +


Сообщение отредактировал nazar79 - Воскресенье, 22 Декабря 2013, 23:06
MatouДата: Воскресенье, 22 Декабря 2013, 22:37 | Сообщение # 2
Исходный коТ
Сейчас нет на сайте
Что это за говнокод? Чего ты хочешь?
Код

void disc_D()  
{  
  return disc_D();  
}

Это вообще бесконечная рекурсия.

Добавлено (22.12.2013, 22:26)
---------------------------------------------

Код
void disc_D();

поставь вначале чтобы это вообще хоть как-то компилировалось.

Добавлено (22.12.2013, 22:37)
---------------------------------------------

Код

   int files, res, pl, del, vibor;  
   res = files + pl;  
   res = files - del;  

Что ты тут пытался насчитать не инициализированными и ни с чем не связанными переменными?



nazar79Дата: Воскресенье, 22 Декабря 2013, 23:06 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Я уже решил. Но еще буду обращаться

Добавлено (22.12.2013, 22:49)
---------------------------------------------
Новая проблема с функцией disc_D()
Она всегда создает файлы

Добавлено (22.12.2013, 23:02)
---------------------------------------------
С созданием разобрался. Просто не досмотрел что поставил знак = вместо ==

Добавлено (22.12.2013, 23:06)
---------------------------------------------
Как сделать так чтоб ты мог вернуться в функцию main()?

OpenGOOДата: Воскресенье, 22 Декабря 2013, 23:55 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Ты бы хотя бы сперва книгу по программированию прочитал, а то
Код
return main();
никуда ни годится. Функцию main только операционная система должна вызывать, а не ты.

Ты явно вообще не понимаешь что return делает.

Код
int main()     
     {     
      char vibor;     
      setlocale( LC_ALL, "Russian" );     
      cout << "\t\t\t\tРабочий стол" << endl;     
      cout << "\n\n";     
      cout << "1-Управление ресурсами" << endl;     
      cout << "2-Программы" << endl;     
      cout << "3-Игры" << endl;     
      cout << "4-Выход из системы" << endl;     
      cin >> vibor;     
      if(vibor == '1')     
      {     
       resursefunction();     
      }     
      _getch();
         
      return 0;
     }


Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]


Сообщение отредактировал OpenGOO - Понедельник, 23 Декабря 2013, 00:09
Форум игроделов » Программирование » C/C++ » Не работает код (а надо))
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг