• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlenie enum w println

Mały hosting, OGROMNE możliwości
+2 głosów
115 wizyt
pytanie zadane 11 marca w C i C++ przez lorenz Nowicjusz (190 p.)
edycja 11 marca przez lorenz

Witam, jak w nowoczesnym C++23 wyświetlić enumy? Funkcja std::println ich nie wyświetla?

#include <iostream>
#include <print>

enum CardinalDirections {
    North = 25,
    South,
    East,
    West
};

int main()
{
    std::println("Wyświetlenie kierunków i ich wartości symbolicznych");
    std::println("Północ: {}", North);
    std::println("Południe: {}", South);
    std::println("Wschód: {}", East);
    std::println("Zachód: {}", West);
    // std::println("Wyświetlenie kierunków i ich wartości symbolicznych");
    // std::println("Północ: {}", static_cast<int>(North));
    // std::println("Południe: {}", static_cast<int>(South));
    // std::println("Wschód: {}", static_cast<int>(East));
    // std::println("Zachód: {}", static_cast<int>(West));

    CardinalDirections WindDirection = South;

//     if (WindDirection == North) {
//        std::println("Kierunek wiatru to Północ.");
//    } else if (WindDirection == South) {
//        std::println("Kierunek wiatru to Południe.");
//    } else if (WindDirection == East) {
//        std::println("Kierunek wiatru to Wschód.");
//    } else if (WindDirection == West) {
//        std::println("Kierunek wiatru to Zachód.");
//    } else {
//        std::println("Nieznany kierunek.");
//    }

    // std::println("Zmienna WindDirection = {}", WindDirection); // z tym nie działa
    std::println("Zmienna WindDirection = {}", static_cast<int>(WindDirection));
    return 0;
}

Ok, udało mi się uruchomić ten program, ale w std::cout, nie trzeba było korzystać z instrukcji if else.


#include <iostream>
#include <format> // Użycie head de <format>

enum CardinalDirections {
    North = 25,
    South,
    East,
    West
};

int main()
{
    std::println("Wyświetlenie kierunków i ich wartości symbolicznych");
    std::println("Północ: {}", static_cast<int>(North));
    std::println("Południe: {}", static_cast<int>(South));
    std::println("Wschód: {}", static_cast<int>(East));
    std::println("Zachód: {}", static_cast<int>(West));

    CardinalDirections WindDirection = South;

    std::println("Zmienna WindDirection = {}", static_cast<int>(WindDirection));

    if (WindDirection == North) {
        std::println("Kierunek wiatru to Północ.");
    } else if (WindDirection == South) {
        std::println("Kierunek wiatru to Południe.");
    } else if (WindDirection == East) {
        std::println("Kierunek wiatru to Wschód.");
    } else if (WindDirection == West) {
        std::println("Kierunek wiatru to Zachód.");
    } else {
        std::println("Nieznany kierunek.");
    }

    return 0;
}

Mam jeszcze takie pytanie skąd pobrać binarne wersje kompilatorów GCC 16 i LLVM 23 / Clang 23? 

Stabilne wersje mogę pobrać stąd. 

https://github.com/llvm/llvm-project/releases
https://github.com/xpack-dev-tools/gcc-xpack/releases/tag/v15.2.0-1/

Mogę też wykorzystać inny kompilator Circle ale on zatrzymał się na standardzie C++20. 

https://www.circle-lang.org/site/download/

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 417 wizyt
pytanie zadane 17 czerwca 2021 w C i C++ przez Eriss69 Gaduła (4,470 p.)
0 głosów
1 odpowiedź 749 wizyt
pytanie zadane 18 października 2020 w C i C++ przez NewEraOfPeace Gaduła (4,790 p.)
0 głosów
0 odpowiedzi 254 wizyt
pytanie zadane 16 maja 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)

93,718 zapytań

142,630 odpowiedzi

323,262 komentarzy

63,265 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...