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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2011, 07:48   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
Сообщение c++ преобразование enum в string

Здравствуйте уважаемые форумчанины...
Возникла следующая проблема..
есть следующий код:
Код:
enum mm={a=1,b,c,d,e.......};
string result;
mm=2;
Как мне добиться того, чтобы в result поместить константное значение mm.
Т.е. result должен быть равен b.
Я могу использовать только enum.....(((
Заранее спасибо))))
world12_tk вне форума Ответить с цитированием
Старый 02.10.2011, 10:16   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Код:
char buff[10];
std::string result = itoa( mm, buff, 10);
или
Код:
std::string result = std::to_string ( (long long) mm);
An1ka вне форума Ответить с цитированием
Старый 02.10.2011, 14:30   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

world12_tk

Как мне добиться того, чтобы в result поместить константное значение mm.
Т.е. result должен быть равен b.


А теперь - правильный ответ ((Ж
встроенными средствами языка - никак.
Rififi вне форума Ответить с цитированием
Старый 02.10.2011, 14:52   #4
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

Код:
#include <string>
#include <iostream>

int main()
{
  enum {a=1,b,c,d,e} mm = b;
  std::string result;
  result = std::string(1, 'a' - 1 + mm);
  std::cout << result << std::endl;
}
alex_x_x вне форума Ответить с цитированием
Старый 02.10.2011, 14:57   #5
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

в осмысленных случаях можно делать так:
Код:
#include <string>
#include <iostream>

enum e_m {a=1,b,c,d,e};

#define CASE(M) case M: return #M;

const char* GET_NAME(e_m m)
{
  switch(m)
  {
    CASE(a)
    CASE(b)
    CASE(c)
    CASE(d)
    CASE(e)
    default:
       return "<<not defined>>";
  }
}

int main()
{
  e_m mm = b;
  std::string result;
  result = std::string(GET_NAME(mm));
  std::cout << result << std::endl;
}
alex_x_x вне форума Ответить с цитированием
Старый 02.10.2011, 16:44   #6
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Спасибо вам за информацию..... Искал в интернете, но ничего не нашел
world12_tk вне форума Ответить с цитированием
Старый 02.10.2011, 16:52   #7
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

У меня такой вопрос!
При таком коде:
Код:
char buff[10];
std::string result = itoa( mm, buff, 10);
result равен 2, а мне нужно, чтобы он равен feb...((((
world12_tk вне форума Ответить с цитированием
Старый 02.10.2011, 17:12   #8
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

каким макаром feb то?
alex_x_x вне форума Ответить с цитированием
Старый 02.10.2011, 17:25   #9
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

ой ой ой)))) эт я попутал
я имел ввиду, что когда мы делаем так mm=2, то в переменной result=b. А у меня выходит что 2
world12_tk вне форума Ответить с цитированием
Старый 02.10.2011, 19:09   #10
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
А теперь - правильный ответ ((Ж
встроенными средствами языка - никак.
Это не правильный ответ, правильный ответ уже дан во втором посте !
Цитата:
Сообщение от world12_tk Посмотреть сообщение
Т.е. result должен быть равен b.
Цитата:
Сообщение от world12_tk Посмотреть сообщение
А у меня выходит что 2
А он и равен. Ведь b == 2 !

Последний раз редактировалось An1ka; 02.10.2011 в 19:11.
An1ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование boll к string Bizunov Помощь студентам 3 24.05.2011 17:55
Преобразование double в string Misha-QWERTY Visual C++ 4 17.04.2011 15:00
Преобразование Char string SL1CK Общие вопросы Delphi 8 11.01.2010 22:35
Преобразование String в OleVariant vg169 Общие вопросы Delphi 8 15.07.2009 13:09
Преобразование int в String^ в С++ Mixasik Помощь студентам 1 21.06.2009 18:57