А як же підсвічування синтаксису, висновок по F1 довідки за обраною функції і інші маленькі принади, скрашують безрадісне життя простого програміста? Ні, це вихід не для нас.
Якщо Ви почали писати консольную програму з нуля, він може Вам підійти. Перепишемо наш маленький шедевр ось так:
Ключове слово тут CharToOem - саме ця функція і перетворює нашу рядок в потрібну кодову сторінку. З висновком у нашої програми тепер все нормально.
Але постає наступне питання - що робити, якщо треба перекомпілювати в консольне Windows-додаток Вашу стару DOS-програму на 100000 рядків, написану на Borland C ++ 3.1, в якій така ситуація зустрічається в кожній другій рядку. Але ж доведеться ще підганяти її під MS-компілятор, та й пару шматочків коду хочеться соптімізіровать.
Тут мабуть має сенс застосувати хід конем, в сенсі
Потрібно мабуть згадати і ще
Втім, це й не вихід навіть, а так, тупичок. Працює він лише, якщо дотримані 3 умови:
- Ваша програма буде працювати тільки під Windows NT
- Для вікна вашої програми буде завжди встановлений шрифт Lucida Console
- Ваша програма ніколи не буде працювати в повноекранному режимі - тільки в вікні.
Якщо всі ці 3 умови дотримані, досить вставити спочатку програми виклик функції SetConsoleOutputCP, задавши в якості параметра потрібну нам кодову сторінку: