Miért mutatják az orosz betűk a konzol alkalmazásban szemetet

De mi a helyzet a szintaxiskiemeléssel, az F1 segítségnyújtásával a kiválasztott funkcióval és más kis varázsaikkal, amelyek egy egyszerű programozó éles életét ragyogóvá teszik? Nem, ez nem megoldás számunkra.

Ha elkezdte írni a konzolprogramot a semmiből, akkor tetszene neked. Így írjuk át újra a mi kis remekművünket:

A kulcsszó itt a CharToOem - ez a funkció átalakítja a karakterláncunkat a kívánt kódlapra. Programunk befejezésekor minden rendben van.

De a következő kérdés - mi a teendő, ha újra kell fordítani a konzol Windows-alapú alkalmazás a régi DOS-program 100.000 vonalak írt Borland C ++ 3.1, amelyben egy ilyen helyzet áll elő, minden második sor. De meg kell testreszabni az MS-fordítóhoz, és egy pár kódot, amelyet optimalizálni akarsz.

Itt talán érdemes alkalmazni egy lovaggal való mozgást, abban az értelemben

Talán még többet kellene említenem

Ez azonban nem egy lehetőség, hanem egy zsákutca. Csak akkor működik, ha a következő három feltétel teljesül:

  • A program csak Windows NT alatt működik
  • A program ablakához mindig a font Lucida Console lesz telepítve
  • A program soha nem fog teljes képernyős módban működni - csak az ablakban.

Ha mindhárom feltétel mindegyike teljesül, akkor a program első hívását a SetConsoleOutputCP függvénybe írja be a paraméter kódjának megfelelő kódlapjának megadásával: