c++ - How to read wstring by wcin, and write it in console by wcout? -


i have such problem. i'm polish. use polish letters in console. i've found how write unicode literals wcout stackoverflowanswer. still don't know, how read unicode literals wcin, , write them back, console (when read 'ĄĘÓŁŚŻŹĆŃ', have wierd output).

how read polish letters wstring wcin, able correctly write them wcout?

when add:

    _setmode(_fileno(stdin), 0x00020000); 

it doesn't read numbers;

please help, thanks. mike.

edit: here's code (of function):

void dodaj() {   wcout << l"dodawanie nowego pracownika:\n";   wstring imie, nazwisko;   short dzien, miesiac, rok;   wstring adnotacjadodatyurodzenia, stanowisko, adnotacjadopracownika;    wcout << l"podaj imię nazwisko:\nimie: ";   getline(wcin, imie);   wcout << l"nazwisko: ";   getline(wcin, nazwisko);    wcout << l"podaj datę urodzenia:\n";   dzien = pobierzshort(l"dzień: ");   miesiac = pobierzshort(l"miesiąc: ");   rok = pobierzshort(l"rok: ");    wcout << l"podaj adnotację daty urodzenia: ";   getline(wcin, adnotacjadodatyurodzenia);    wcout << l"podaj stanowisko: ";   getline(wcin, stanowisko);    wcout << l"podaj adnotację pracownika: ";   getline(wcin, adnotacjadopracownika);    pracownicy.push_back(pracownik(imie, nazwisko, dzien, miesiac, rok, adnotacjadodatyurodzenia, stanowisko, adnotacjadopracownika)); } 

and write console function:

    void wyswietlinfoopracownikach()     {         (int = 0; < pracownicy.size(); i++)         {             wcout << l"pracownik nr " << << endl;             pracownicy[i].wyswietlpodsumowanie();             wcout << endl;         }     }      void pracownik::wyswietlpodsumowanie()     {         wcout << l"pracownik:\n";         daneosobowe.wyswietldaneosobiste();         wcout << l"data urodzenia:\n";         dataurodzenia.wyswietldate();         wcout << l"adres zamieszkania:\n";         adreszamieszkania.wyswietladres();         wcout << l"adres zameldowania:\n";         adreszameldowania.wyswietladres();         wcout << l"adres korespondencji:\n";         adreskorespondencji.wyswietladres();         umowy.wyswietlhistoriedat();         orzeczenia.wyswietlhistoriedat();         badania.wyswietlhistoriedat();         urlopy.wyswietlhistoriedat();         wcout << l"stanowisko: " << stanowisko << endl;         wcout << l"wynagrodzenie brutto: " << wynagrodzeniebrutto << endl;         wcout << l"dodatkowe informacje: " << adnotacja << endl;     } 

my main():

int main() {     _setmode(_fileno(stdout), 0x00020000);     // _setmode(_fileno(stdin), 0x00020000);      system("cls");     menu();     short wybor;     wybor = pobierzshort(l"wybierz opcję menu: ");      while (wybor != 3)     {         bool czywyjsc = false;          switch (wybor)         {             case 1: wyswietlinfoopracownikach(); break;             case 2: dodaj(); break;             case 3: czywyjsc = true; break;             default: wcout << l"dokonano złego wyboru\n"; break;         }          if (czywyjsc)             break;          menu();         wybor = pobierzshort(l"wybierz opcję menu: ");         system("cls");     }      return 0; } 

the problem halfly solved. call

_setmode(_fileno(stdin), 0x00020000);  

when need read wstring, ,

_setmode(_fileno(stdin), _o_text); 

when need read number.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -