Polskie znaki przy fstream.open()

Polskie znaki przy fstream.open()
FR
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam, piszę mały programik na szybko i napotkałem problem przy próbie otwarcia pliku txt.
Otóż jeśli wcześniej zadeklaruję

Kopiuj
string text = "ąęćłń󟿥ĘĆŁŃÓŹŻ.txt";

to funkcja

Kopiuj
plik.open(text);

nie ma problemu z działaniem.

Ale jeśli robię w ten sposób:

Kopiuj
 string text;
getline(cin, text);

i podaję

Kopiuj
 ąęćłń󟿥ĘĆŁŃÓŹŻ.txt

to

Kopiuj
plik.open(text);

nie działa. Problem jest w różnicy pomiędzy zapisem ASCII znaków. W obu przypadkach polskie znaki są kodowane inaczej.
Wie ktoś może jak to sprowadzić do działania? Oczywiście nie mam na myśli funkcji "na pałę" przepisującej kody ASCII.
Próbowałem z

Kopiuj
 setlocale()

oraz

Kopiuj
cin.imbue()

ale nie potrafię tego ogarnąć.

Z góry dzięki za pomoc.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Jaki system, jaki kompilator.

FR
  • Rejestracja: dni
  • Ostatnio: dni
0

Win10 Visual15
W zasadzie to fajnie by było jakby to wszędzie działało :)

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
0

Do takich zabaw służą std::wstring, std::wifstream, std::wofstream, std::wcin oraz std::wcout

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.