Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2009, 16:32   #1
Guguzjaka
 
Регистрация: 27.11.2009
Сообщений: 6
По умолчанию Преобразование типов переменных

Здравствуйте.
Есть код:
Код:
int x = 0;
  char y = 'Y';
  while (y != 'N')
  {
  cin >> x;
  switch(x)
  {
    case 1:
    {
      void Eng();
      break;
    }
    case 2:
    {
      void Chi();
      break;
    }
    case 3:
    {
      void Fra();
      break;
    }
    case 4:
    {
      void Rom();
      break;
    }
    default:
    {
      cout << "Вы ввели неверное значение. Повторить ввод (Y/N).";
      cin >> y;
      break;
    }
  }
  }
Если на запрос
Код:
cin >> x;
Нажать любую литеру, то видим следующий результат (рис.1), и так до бесконечности.
Вопрос как заставить программку конвертировать, что называется "на лету", любой символ в тип int.
К примеру на С# я это делаю так:
Код:
x = Convert.ToInt32(Console.ReadLine());
Есть ли что-то подобное под С++.
Или как сделать иначе, что бы программа не выполняла бесконечный цикл как на рисунке?
Спасибо.
Изображения
Тип файла: jpg term.jpg (86.5 Кб, 124 просмотров)
Guguzjaka вне форума Ответить с цитированием
Старый 30.11.2009, 17:44   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

atoi / _wtoi
BOBAH13 вне форума Ответить с цитированием
Старый 30.11.2009, 17:58   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а может просто писать не 1 а '1'?
то есть код цифры 1
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.11.2009, 18:09   #4
Guguzjaka
 
Регистрация: 27.11.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а может просто писать не 1 а '1'?
то есть код цифры 1
Это в смысле не
Код:
case 1:
, а
Код:
case '1':
?
Я правильно понял?

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
atoi / _wtoi
А можно, плз, по подробней, что это откуда и куда...
Спасибо.
Guguzjaka вне форума Ответить с цитированием
Старый 30.11.2009, 18:18   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да, вы правильно поняли.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.11.2009, 18:45   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

коды цифр от 48 до 57 (0-9)
atoi работает только со строкой насколько я помню. В вашем случае можно так
Код:
int getInt(char a)
{
     return a-48;
}

Последний раз редактировалось NiCola999; 30.11.2009 в 18:49.
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер переменных базовых типов. Defa4ka Помощь студентам 2 06.09.2009 01:46
Преобразование типов DeFace Общие вопросы C/C++ 4 24.03.2009 17:06
преобразование типов в Си HoOpe Помощь студентам 5 11.03.2009 21:58
Значение типов переменных MAKEDON Общие вопросы Delphi 8 17.07.2008 11:24
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15