Вы не можете поместить идентификаторы (имена) enum
в cout
. Например, значение имени Pi
в enum
, предположим, установлено на 3.14
. Вы напрямую хотите, чтобы пользователь ввел это значение, оно покажет строку Pi
в потоке вывода, но нет, это только в пределах предполагаемого кода. Перечисление просто содержит константы.
По умолчанию ваше объявление enum {Pop, Jazz, Classic}
содержит значения констант 0, 1 и 2 соответственно.
Вместо этого вы можете использовать строку с массивом для получения значения. Рассмотрим следующий пример:
struct album {
string album_name;
string genre[3] = {"Pop", "Jazz", "Classic"}; // this one holds 0 = "Pop" ...
int track_number;
string tracks[5];
string tracklocation;
};
И код драйвера:
int main(void) {
album x1;
int temp;
std::cout << "Enter genre 0->pop, 1->Jazz, 2->Classic\n";
std::cin >> temp;
std::cout << x1.genre[temp] << endl;
// will display 0 = "Pop", 1 = "Jazz", 2 = "Classic"
return 0;
}