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
Post a Comment