• 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

Object Storage Arubacloud
–1 głos
1,083 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 (194,920 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 (194,920 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 919 wizyt
+1 głos
2 odpowiedzi 481 wizyt
pytanie zadane 17 kwietnia 2021 w C i C++ przez Doge Gaduła (3,370 p.)
0 głosów
1 odpowiedź 1,005 wizyt
pytanie zadane 12 maja 2020 w C i C++ przez Maciex0n Nowicjusz (160 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...