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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,022
#1

enum: цифры - C++

24.07.2011, 14:01. Просмотров 1815. Ответов 25
Метки нет (Все метки)

А можно в перечислениях использовать цифры?
Например:
C++
1
enum chislo {1, 2, 3, 4}
(только так не работает)

Просто есть файл, там записано длинное число, и каждую циферку нужно записать в ячейку массива...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2011, 14:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос enum: цифры (C++):

Enum == int !=enum? - C++
enum Flags{ Flag1 = 1, Flag2 = 2}; int main() { Flags a = Flag1, b = Flag2; a = a | b; } error C2440: =: невозможно...

Enum - C++
Доброго времени суток Интересует что значит следующий код: enum Colors { RED, GREEN, BLUE };

enum - C++
всем здрасти, помогите разобраться с функцией enum к примеру есть код enum direction { RIGHT = 0x1, LEFT = 0x2, UP ...

enum - C++
#include <iostream> using std::cout; using std::endl; enum {red, green, blue}; int main() { cout<<sizeof(red)<<endl; ...

enum - C++
есть (в header.h) enum valut{dol, grn ,rub}; в другом cpp функция convert(valut v) . В еще другом файле функция main , оглашение int v , ...

enum - C++
enum alfa{a,b,c,d,e,f,g,h,i,k,l,m,n,o,p,q,r,s,t,v,x,y,z}; for(int i=strlen(text);i>=0;i--) { if(isalnum((unsigned char)text)) ...

25
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.07.2011, 14:05 #2
marina2, чем строка не угодила?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main()
{
    std::string Line ( "123456789123456789" );
 
    int * ArrayNumbers = new int [ Line.length() - 1 ];
 
    for ( int index = 0; index < Line.length(); index++ )
        ArrayNumbers [ index ] = Line [ index ] - 48;
 
    delete []ArrayNumbers;
 
    std::cin.get();
    return 0;
}
1
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,022
24.07.2011, 14:07  [ТС] #3
Цитата Сообщение от Mиxaил Посмотреть сообщение
marina2, чем строка не угодила?
Да угодила

Просто придется символы переводить в числа

Я просто спросила: это один из вариантов решения задачи
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
24.07.2011, 14:08 #4
marina2, перечисления позволяют задавать цифрам строковые идентификаторы, вопрос: как оносятся перечисления к Вашей задаче?
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.07.2011, 14:11 #5
вашим вариантом enum нельзя.
C++
1
enum тип_перечисления { список_констант } список_переменных
0
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,022
24.07.2011, 14:13  [ТС] #6
Mиxaил, поясните, пожалуйста про 48
Цитата Сообщение от Mиxaил Посмотреть сообщение
Line [ index ] - 48
0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
24.07.2011, 14:17 #7
48 это ASCII код символа '0'
У символа '1' код 49
и т. д.
То есть
'0' - 48 == 0
'1' - 48 == 1
...
'9' - 48 == 9

Добавлено через 31 секунду
Но я бы вычитал не 48, а именно '0'
1
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.07.2011, 14:19 #8
вот еще один аналог
C++
1
ArrayNumbers [ index ] = static_cast < int > ( Line [ index ] ) - static_cast < int > ( '0' ); // или ( int ) ( от char )
дело в том, что переменные типа char имеют порядковый номер ( естественно целого типа ). Чтобы перевести символьное представление числа в "нормальный" вид целого типа, то нужно от значения в таблице отнять порядковый номер "0" - это 48... Отсюда имеем.
1
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,022
24.07.2011, 14:20  [ТС] #9
grizlik78, спасибо, вот это мне и нужно было
0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
24.07.2011, 14:21 #10
Цитата Сообщение от Mиxaил Посмотреть сообщение
вот еще один аналог
А мне не очень понятно, зачем здесь явное преобразование к int. Всё-таки char это целочисленный тип.
0
marina2
Рожденная для битвы
272 / 50 / 5
Регистрация: 08.11.2009
Сообщений: 1,022
24.07.2011, 14:23  [ТС] #11
Цитата Сообщение от grizlik78 Посмотреть сообщение
Всё-таки char это целочисленный тип.
Можете подробней, не очень догоняю(
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.07.2011, 14:24 #12
grizlik78, да просто, чтобы показать, что преобразовываем тип, для наглядности... Сам, конечно, такое не использую и не пропагандирую...
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
24.07.2011, 14:24 #13
Вообще то enum созданный ваш перечисленный тип и так воспринимает как числа
C++
1
2
    enum numbers {one=1,two,three,four,five=5};
    cout<<four; //будет выведено 4, а не "four".
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
24.07.2011, 14:26 #14
marina2, используем его порядковый номер в таблице ASCII с небольшим изменением ( - 48 )

Добавлено через 56 секунд
Gepar, речь не об этом шла...
1
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
24.07.2011, 14:27 #15
Цитата Сообщение от marina2 Посмотреть сообщение
Можете подробней, не очень догоняю(
В char идёт хранение в виде кода символа по таблице символов вашего ПК, потому то Вы и можете присвоить значение переменной char переменой типа int. Пример:
C++
1
2
3
    char symbol='x';
    int a=symbol;
    cout<<a; //будет выведено 120 потому что по таблице ASCII символов код у символа x =120
0
24.07.2011, 14:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2011, 14:27
Привет! Вот еще темы с ответами:

enum - C++
enum __Enumm { A a; B b; C c; }; Пишет ошибку. Объясните, пожалуйста, как правильно и как работать с enum'ами?

enum - C++
Ку! Имеется некое множество enum SomeSet { elem_1, elem_2, elem_3, // ... }; Это множество активно...

Даны цифры двух двузначных чисел. Получить цифры суммы - C++
Даны цифры двух двузначных чисел, записываемых в виде а2а1 и b2 b1, где а1 и b1— число единиц, а2 и b2 — число десятков Получить цифры...

Замена последней цифры на значение наименьшей цифры в записи числа N - C++
Ошибка в задании Условие:Дано натуральное число N. Получить новое число М, которое образуется из числа N путем замены последней цифры на...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru