Как вывести константу в enum
У меня в enum хранятся следующие константы: Книга, Журнал, Газета, Блокнот. Мне нужно вывести Газета. Я написал так код
int main() {
setlocale(LC_ALL, "Rus");
enum print_edition {
Книга, Журнал, Газета, Блокнот
}direction;
direction = Газета;
if (direction = 2) {
printf("Газета");
}
return 0;
}
Но я хочу знать, можно ли вывести константу не через текст в двойных кавычках. То есть есть ли здесь что-то наподобие - написать direction[2] или print_edition[2] в printf и он выведет Газета?
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
Вам прийдётся сделать массив ассоциативный. char const * assoc [ ] = { [Книга] = "Книга" , [Журнал] = "Журнал" , ... } и потом printf(assoc[direction]);
# include <stdio.h>
# include <locale.h>
int main() {
setlocale(LC_ALL, "Rus");
enum print_edition {
Книга, Журнал, Газета, Блокнот
}direction;
char const * assoc [ ] = {
[Книга] = "Книга" ,
[Журнал] = "Журнал" ,
[Газета] = "Газета" ,
[Блокнот] = "Блокнот" } ;
direction = Газета;
puts(assoc[direction]);
}