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

Getline(cin, x); nie wczytuje polskich znaków

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
–1 głos
1,245 wizyt
pytanie zadane 31 stycznia 2018 w C i C++ przez niezalogowany

Mam taki o to problem ,że po zastosowaniu getlina z cinem, program nie wyświetla mi polskich znaków.

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Polish");
    string x;
    cin.sync();
    getline(cin, x);
    cout<<x<<"ółęśźżćłą"<<endl;
    return 0;
}

Co z tym uczynić?

2 odpowiedzi

+1 głos
odpowiedź 31 stycznia 2018 przez Treners Początkujący (310 p.)

Cóż nie jest to może idealne (użycie std::system()) ale pozwala przy wybraniu sensownej czcionki w konsoli (obsługującej UTF-8), obsłużyć w MS Windows znaki narodowe:

#include <iostream>
#include <cstdlib>

int main() {
#ifdef _WIN32
    std::system("@chcp 65001 > null");
#endif // _WIN32
    std::cout << "Zażółć gęślą jaźń." << std::endl;
    return EXIT_SUCCESS;
}

 

–2 głosów
odpowiedź 31 stycznia 2018 przez Secrus Nałogowiec (32,880 p.)
Konsola domyślnie nie obsługuje polskich znaków, wiem, że gdzieś to można było ustawić, ale gdzie to nie pamiętam
1
komentarz 1 lutego 2018 przez Knayder Nałogowiec (37,640 p.)
Nie rozumiem minusów w kierunku tej odpowiedzi. Jest ogólna, ale poprawna i nakierowuje na błąd. Gdyby nie ta część ("wiem, że gdzieś to można było ustawić, ale gdzie to nie pamiętam"), to nikt nie dałby minusa, więc się zastanówcie dwa razy na przyszłość:
komentarz 1 lutego 2018 przez Secrus Nałogowiec (32,880 p.)
Dzięki bardzo. Rozumiem ogólny hejt na taką odpowiedź, ale miło coś takiego usłyszeć.
1
komentarz 1 lutego 2018 przez j23 Mędrzec (195,220 p.)

@Knayder, w którym miejscu jest poprawna? Konsola w "polskim Windowsie" śmiga domyślnie w kodowaniu cp852, zatem jest w stanie wyświetlić polskie znaki.

komentarz 1 lutego 2018 przez Knayder Nałogowiec (37,640 p.)
Kodowanie a czcionka to dwie różne rzeczy.
komentarz 1 lutego 2018 przez j23 Mędrzec (195,220 p.)
To chyba oczywiste, że jeśli konsola ma domyślnie ustawioną polską stronę kodową cp852, to domyślnie ustawiona czcionka jest wstanie poprawnie wyświetlić znaki w tym kodowaniu.
komentarz 1 lutego 2018 przez Knayder Nałogowiec (37,640 p.)
No nie wiem, nie mam dostępu do komputera, ale z tego co pamiętam, to nie było domyślnie polskich znaków.

Podobne pytania

0 głosów
2 odpowiedzi 1,133 wizyt
+1 głos
2 odpowiedzi 669 wizyt
pytanie zadane 17 kwietnia 2021 w C i C++ przez Doge Gaduła (3,420 p.)
0 głosów
1 odpowiedź 1,207 wizyt
pytanie zadane 12 maja 2020 w C i C++ przez Maciex0n Nowicjusz (160 p.)

93,103 zapytań

142,077 odpowiedzi

321,570 komentarzy

62,445 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...