Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C, C# ΠΈ Java

Π£Ρ€ΠΎΠΊΠΈ программирования, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΡΡ‚Π°Ρ‚ΡŒΠΈ, исходники, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты

ΠžΠ‘Π’ΠžΠ ΠžΠ–ΠΠž ΠœΠžΠ¨Π•ΠΠΠ˜ΠšΠ˜! Π’ послСднСС врСмя Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях ΡƒΡ‡Π°ΡΡ‚ΠΈΠ»ΠΈΡΡŒ случаи прСдлоТСния ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ Π»ΠΈΡ†, ΠΏΡ€ΠΈΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ сайтом vscode.ru. ΠœΡ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ пишСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π² посторонних Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… Π’Πš. Для связи с Π½Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эти ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹: vscoderu@yandex.ru, https://vk.com/vscode

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ русский язык Π² Π‘ΠΈ

На Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… этапах программирования ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: ΠΎΠ½ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ сообщСниС Π½Π° русском языкС для консоли (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ printf), Π½ΠΎ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ вмСсто русских слов ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСпонятныС Π·Π½Π°ΠΊΠΈ. ПокаТСм, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

НапримСр, ΠΏΡ€ΠΈ запускС Π²ΠΎΡ‚ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π’ консоли Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

Всё Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Ρ€ΡƒΡΡΠΊΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ!

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ:

Она ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

А Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Π΅Π»Π° ΠΊΠΎΠ΄Π° Π²ΠΎΡ‚ эту строку:

Ѐункция setlocale Π·Π°Π΄Π°Ρ‘Ρ‚ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ английский язык.
LC_ALL ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

β€œRus”, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ локализация ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π° русский язык.

Π’ΠΎΡ‚ ΠΈ всё! ΠœΡ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ русский язык Π² Π‘ΠΈ. Наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½Π° Π½Π° Π΄Π²Π΅ строки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² соц. сСтях:

15 коммСнтария(Π΅Π²) ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€œ Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ русский язык Π² Π‘ΠΈ ”

Π§Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ? Какая ошибка?

ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

#include
#include
#include

int main()
<
setlocale(LC_ALL, β€œRus”);
printf(β€œΠ’ΡΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Как Π΄Π΅Π»Π°?”);
getch(); //Π’ Visual Studio _getch();
return 0;
>

Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ русский язык Π² стандартном ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ошибок.

ВмСсто ΠΎΠ΄Π½ΠΈΡ… ΠΊΠ°Ρ€Π°ΠΊΡƒΠ»Π΅ΠΉ появились Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Но Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок Π½Π΅ Π²Ρ‹Π΄Π°Π΅Ρ‚.

ЗдравствуйтС, Π•Π²Π³Π΅Π½ΠΈΠΉ. БущСствуСт Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ способ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ русского языка Π² Π‘ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

#include
#include
#include

int main()
<
SetConsoleCP(1251); //установка ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы win-cp 1251 Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π°
SetConsoleOutputCP(1251); //установка ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы win-cp 1251 Π² ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°
printf(β€œΠ’ΡΠ΅ΠΌ ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Как Π΄Π΅Π»Π°?”);
_getch();
return 0;
>

ЗдравствуйтС, использовала Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.
ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ тСкста Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ printf.
Но, ΠΊΠΎΠ³Π΄Π° я ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽ слово Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ scanf, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹Π²ΠΎΠΆΡƒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ printf ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ снова нСпонятныС символы.
ΠŸΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡ‚Π΅ поТалуйста ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

ЗдравствуйтС! Π§ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅ Π² коммСнтариях приводятся Π΅Ρ‰Ρ‘ Π΄Π²Π° способа, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ русский язык Π² Π‘ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡ…, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π£ мСня Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с printf всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π²ΠΎΡ‚ Ссли ввСсти ΠΏΡ€ΠΈ scanf, Ρ‚ΠΎ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ printf Π±ΡƒΠ΄ΡƒΡ‚ кракозябры

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ способы, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² коммСнтариях Π²Ρ‹ΡˆΠ΅. Один ΠΈΠ· Π½ΠΈΡ… Ρ‚ΠΎΡ‡Π½ΠΎ сработаСт.

Бпасибо Π·Π° ΠΈΠ½Ρ„Ρƒ! ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Бпасибо большоС!

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ β€œRu”, Π° Π½Π΅ β€œRus”.
setlocale(LC_ALL, β€œRu”);

Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊ:

#include
#include
#include

void main()
<
setlocale(LC_ALL, β€œRus”);
wprintf(L”Бпасибо”);
>

Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π² NotePad++ ΠΈΠ»ΠΈ Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ самого Ρ„Π°ΠΉΠ»Π° с UTF-8 Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Windows-1251.
Бпасибо Π·Π° ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РусскиС символы(Π±ΡƒΠΊΠ²Ρ‹) ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅/Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² консоль Π½Π° C++

ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ языка C++ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ Windows довольно часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ отобраТСния русских Π±ΡƒΠΊΠ² Π² консоли. Π’Ρ‹Π²ΠΎΠ΄ ΠΈ Π²Π²ΠΎΠ΄ русских Π±ΡƒΠΊΠ² сопровоТдаСтся Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ кракозябр ΠΈΠ»ΠΈ ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„ΠΎΠ². Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ довольно ΠΌΠ½ΠΎΠ³ΠΎ совСтов, Π½ΠΎ большая Ρ‡Π°ΡΡ‚ΡŒ совСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ½Π΅ попались, Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ русских Π±ΡƒΠΊΠ²

Если Π½ΡƒΠΆΠ½ΠΎ быстроС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Π°Ρ‚ΡŒ Π²Π½ΠΈΠ·, ΠΈΠ±ΠΎ сначала я расскаТу ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρƒ мСня ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ я искал Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

На языкС C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽ ΠΏΠΎΠ΄ ОБ Linux, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ компилятор GCC. Π‘ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния русских Π±ΡƒΠΊΠ² я Π½Π΅ сталкивался. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ я Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ своСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΡΡ лишь ΡΠΊΡ€ΠΎΠΌΠ½Π΅Π½ΡŒΠΊΠΈΠΌ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠΌ с установлСнной ОБ Windows Seven. Π—Π°Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΠΎΠΊΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ я установил Π½Π° Π½Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Dev-C++ 5.10(ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ компилятор TDM-GCC 4.8.1 Π½Π° Π±Π°Π·Π΅ GCC 4.8.1). ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΠ½Π° ΡƒΠΆΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ поддСрТиваСтся, Π½ΠΎ сущСствуСт Ρ„ΠΎΡ€ΠΊ Orwell Dev-C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обновляСтся ΠΏΠΎ сСй дСнь. Установив, я запустил ΠΈ для ΠΏΡ€ΠΎΠ±Ρ‹ написал ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ тСкст Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!Β». Но ΠΏΠΎΠ·Π΄ΠΎΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ½Π° с ΠΌΠΈΡ€ΠΎΠΌ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ смогла, Π° лишь сказала Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятноС Π½Π° дрСвнССгипСтском. ПослС пСрСлопачивания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ² ΠΈ сайтов я нашСл мноТСство совСтов, Π½ΠΎ основная масса Π½Π΅ способна Π±Ρ‹Π»Π° Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… расскаТу Π΄Π°Π»Π΅Π΅.

ПослС написания, компиляции ΠΈ запуска Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

Π’Ρ‹Π²ΠΎΠ΄ кракозябр Π² консоль

Π‘Ρ€Π°Π·Ρƒ понятно, Ρ‡Ρ‚ΠΎ Π½Π° привСтствиС это совсСм Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅.

ПослСдовав совСту ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ setlocale(0, «») ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±Ρ‹Π» Π±Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π² настройках ОБ язык систСмы русский.

На Π²Ρ‹Π²ΠΎΠ΄ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΏΠΎΠ΄ΡƒΠΌΠ°Π» я. Казалось Π±Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° здороваСтся Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкС, Π½ΠΎ Π²ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь оказались ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ.

О Π½ΠΈΡ… я ΡƒΠ·Π½Π°Π» ΠΈΠ· обсуТдСния. Π£ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π±Ρ‹Π»Π° аналогичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ€Π΅ΡˆΠ΅Π½Π½Π°Ρ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Но Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ удовлСтворяло Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΠ»Π³ΠΎ, ΠΎΠ½ сообщил, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° руском, ΠΎΠ½Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π½Π° нСпонятном языкС.

Коль ΡƒΠΆ Ρ‚Π°ΠΊ, я Ρ€Π΅ΡˆΠΈΠ» вновь внСсти измСнСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ½Π° поздороваСтся со ΠΌΠ½ΠΎΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Но Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π΅ привСтствиС

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

ΠžΡΠΊΠΎΡ€Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° дрСвнССгипСтском?

Как Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½Π° Π½Π΅ смогла Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Поискав ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² сСти, я ΡƒΠ·Π½Π°Π» ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ setlocale() Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Π° Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с cin,cout,etc. Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΈΡΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтах.

РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ русских Π±ΡƒΠΊΠ² Π² консоли

Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

Π’Π½ΠΎΠ²ΡŒ кракозябры Π² консоли

Π‘Π½ΠΎΠ²Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятноС. Но Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ оказалось, Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π±Π»ΠΈΠ·ΠΊΠΎ. Π£ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SetConsoleCP() ΠΈ SetConsoleOutputCP() Π΅ΡΡ‚ΡŒ нСбольшой нСдостаток β€” ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Lucida Console. Π’ консоли ΠΆΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ стоит ΡˆΡ€ΠΈΡ„Ρ‚ Consolas, Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ этапом ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² консоли Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Cmd ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° Π·Π½Π°Ρ‡Π΅ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ(ΠŸΠ΅Ρ€Π΅Π΄ D:\… Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ контСкстноС мСню ΠΎΠΊΠ½Π°. Π”Π°Π»Π΅Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ «Бвойства».

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню консоли

Π”Π°Π»Π΅Π΅ появится ΠΎΠΊΠ½ΠΎ с настройками, Ρ‚Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ Lucida Console.

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

Бвойства консоли Windows

И Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ОК.

ПослС Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ я вновь запустил ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ и…

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

Π”Π°! Она ΠΏΠΎΠ·Π΄ΠΎΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ со ΠΌΠ½ΠΎΠΉ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π½Π° русском языкС.

Π”Π°Π½Π½Ρ‹ΠΉ способ ΠΏΠΎΠΌΠΎΠ³ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΌΠ½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ русских символов Π² консоли Windows, надСюсь, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅ ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Для вас это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСсно:

РусскиС символы(Π±ΡƒΠΊΠ²Ρ‹) ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅/Π²Ρ‹Π²ΠΎΠ΄Π΅ Π² консоль Π½Π° C++ : 28 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Π‘Π»ΠΈΠ½ всС дСлаю ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ получаСтся Π² свойствах консоли установлСн ΡˆΡ€ΠΈΡ„Ρ‚ Lucida Console ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚Π΅)
ΠŸΠΈΡˆΡƒ:
#include
#include
#include

using namespace std;

int main()
<
setlocale(LC_ALL,Β»RussianΒ»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Ρƒ сСбя β€” всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΊΠ°ΠΊ Π½Π° рисункС здСсь http://nicknixer.ru/?p=349

Π‘Ρ‚Ρ€ΠΎΡ‡ΠΊΠ° setlocale(LC_ALL,Β»RussianΒ») Π½Π΅ Π½ΡƒΠΆΠ½Π°, Π±Π΅Π· Π½Π΅Π΅ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ консоли 866 кодовая страница. МоТно ΠΏΡ€ΠΎΡ‰Π΅ β€” Creator β€” Настройки β€” Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ β€” кодовая страница 866. Π—Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ самая пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Бпасибо Π·Π° 866 ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, всС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

ΠœΡƒΡ‡Π°Π»ΡΡ 2 часа с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ русских Π±ΡƒΠΊΠ²!
ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Π» ΠΊΡƒΡ‡Ρƒ пустых совСтов.
НаконСц-Ρ‚ΠΎ.
Π­Ρ‚ΠΎΡ‚β€” самый Ρ‚ΠΎΠ»ΠΊΠΎΠ²Ρ‹ΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, ΠΈ писало ΠΏΠΎ русски!!
Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Вас.

Π― Ρ€Π°Π΄ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅, Π’Π°ΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ людям.

Π’ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²Π΅Π±Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ русских Π±ΡƒΠΊΠ². PHP- программисты с Π²Π°ΠΌΠΈ!

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ чСловСчСскоС спасибо!
ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ совСтом. Всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ!

Бпасибо!ΠΏΠΎ ΠΏΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ всё Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΎ)

На ΠΌΠΎΠΉ взгляд, самый простой ΠΈ дСйствСнный способ Π²Ρ‹Π²ΠΎΠ΄Π° русских Π±ΡƒΠΊΠ² Π² консоли Windows: ΠΏΠΈΡΠ°Ρ‚ΡŒ исходники Π² Π΅Π΅ Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, Ρ‚. Π΅. Π² OEM866 ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚. Для удобства ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эту ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ Notepad++.
И Π½Π΅ Π½Π°Π΄ΠΎ Ρ‚Π°Π½Ρ†Π΅Π²Π°Ρ‚ΡŒ с Π±ΡƒΠ±Π½ΠΎΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ Ρ‚.Π΄.

Бпасибо, Π΄Π°ΠΉ Ρ‚Π΅ Π±ΠΎΠ³ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ!!

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° эти совСты, ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅, Π΄ΠΎΡ…ΠΎΠ΄Ρ‡ΠΈΠ²Ρ‹Π΅. Ушла ΠΌΠΈΠ½ΡƒΡ‚Π° Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

Π›Π°ΠΉΡ„Ρ…Π°ΠΊ ΠΎΡ‚ «БпСциалист»
ПослС main
system(Β«chcp 1251 > nulΒ»);

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π²Π²ΠΈΠ΄Ρƒ послС Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок, Ρ‚.Π΅. Π² Ρ‚Π΅Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Бпасибо большоС!ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ.Π‘ Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° ΡƒΠ·Π½Π°Π» Π³Π΄Π΅ Ρ‚ΠΎ Π½Π΅Π΄Π΅Π»ΠΈ 2 Π½Π°Π·Π°Π΄, Π²Ρ‡Π΅Ρ€Π° заинтСрСсовало ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. МСнСС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ вуаля. НадСюсь Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΡ‚ΠΎ Π½Π° счёт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎβ€¦ΠžΠ‘ Ρƒ всСх Ρ€Π°Π·Π½Ρ‹Π΅, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ (компиляторы) Ρ€Π°Π·Π½Ρ‹Π΅. Π’ΠΎΡ‚ поэтому ΠΈ совСты для всСх Ρ€Π°Π·Π½Ρ‹Π΅. ΠšΠΎΠΌΡƒ Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄ Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ³Π΄Π° напишСм ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ОБ(хотя ΠΊΠΎΠ΅ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρƒ нас Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΎ Π΄Π°Π²Π½ΠΎ) Ρ‚ΠΎΠ³Π΄Π° Π½ΠΈΡ‡Π΅Π³ΠΎ этого Π½Π΅ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚. Автору ΡΡ‚Π°Ρ‚ΡŒΠΈ большоС спасибо Π΅Ρ‰Ρ‘ Ρ€Π°Π·. Русский язык ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ лишь Π±Ρ‹ Π±Ρ‹Π»ΠΎ ΠΏΠΎ русски. НадСюсь, это Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ Π·Π°Π΄Π΅Π²Π°Π΅Ρ‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² Π‘++

Π’Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹
ЗдравствуйтС. Битуация такая. Π― Π²Π²ΠΎΠΆΡƒ/Π²Ρ‹Π²ΠΎΠΆΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: char a; cin >>.

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² cΠ’Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² консоли
Π•ΡΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Π°Π·Ρƒ. Π‘Π°Π·Ρƒ эту ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ. Но Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Π²ΠΎΠ΄Π°.

Π’Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Ρ‡Π΅Ρ€Π΅Π· консоль
Π’ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° слова(символа) Ρ‡Π΅Ρ€Π΅Π· консоль # include #.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ стандартный способ:

Ρ…ΠΌ, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Ρ‚ΡƒΡ‚ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с Π±ΡƒΡ„Π΅Ρ€ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π΅Π»Π°Ρ‚ΡŒ.
Π― имСю Π²Π²ΠΈΠ΄Ρƒ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Ρ‚ΠΈΠΏΠ° char, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сначала Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π²Π΅Π΄Π΅Π½Π½Π° строка, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ Π²Π²ΠΎΠ΄Π°. Π― Π½Π΅ Π½Π°ΡΡ‚Π°ΠΈΠ²Π°ΡŽ Π½Π° своСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, просто ΠΏΠΎΠΊΠ° это ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ.

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² cΠ’Π²ΠΎΠ΄ Π² строки ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π² консоль ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹
Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для подсчСта количСства Π±ΡƒΠΊΠ² Π² Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строкС,Π½ΠΎ Ссли Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ строку Π½Π° Русском.

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹: CP866, Windows-1251, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄
Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток! ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅, поТалуйста, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ.

Π’Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹
Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΡƒΠΌΡ‡Π°Π½Π΅! Вопрос ΠΌΠΎΠΉ касаСтся Π²Π²ΠΎΠ΄Π° русских Π±ΡƒΠΊΠ² с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Русский язык Π² консоли

Π£Ρ‡Ρƒ C++ ΠΏΠΎ ΠΊΠ½ΠΈΠΆΠΊΠ΅ Бтрауструпа, Π½Π΅ выводятся русскиС символы. Π’ΠΎΡ‚ ΠΊΠΎΠ΄:

Π’ Code::Blocks всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π±Π΅Π· крякозяблов. Π”Π°ΠΆΠ΅ Π±Π΅Π· setlocale.

Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c. Π€ΠΎΡ‚ΠΎ Как Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² c

6 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² 6

Для Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ сущСствуСт мноТСство Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстроС ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сильно Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ «МСнСС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅, Π½ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΒ».

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, Π½ΠΎ слоТноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Для Π½Π°Ρ‡Π°Π»Π°, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρƒ консоли Windows состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Ρ‘ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоят Β«ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ всС символы. Π’Π°ΠΌ слСдуСт ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ консоли Π½Π° ΡŽΠ½ΠΈΠΊΠΎΠ΄Π½Ρ‹ΠΉ, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π½Π° английской Windows. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² Π΅Ρ‘ консоли Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ β†’ Бвойства β†’ Π¨Ρ€ΠΈΡ„Ρ‚. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ для всСх Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² Умолчания, Π° Π½Π΅ Бвойства.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ рассмотрСниС касаСтся лишь Microsoft Visual Studio. Если Ρƒ вас Π΄Ρ€ΡƒΠ³ΠΎΠΉ компилятор, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° свой страх ΠΈ риск, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Π½Π΅Ρ‚Ρƒ.

Настроив срСду, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ собствСнно Π·Π°Π΄Π°Ρ‡ΠΈ.

(Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ использованиС ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… строк: ΡƒΠ·ΠΊΠΈΠ΅ строки ΠΏΡ€ΠΈ компиляции ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ страницу, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ANSI-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ. Если Π²Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° английской Windows, это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ.)

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ _setmode(_fileno(. ), _O_U16TEXT); для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° консоли:

Π’Π°ΠΊΠΎΠΉ способ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ, с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

Если ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ хочСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Unicode, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Для Π½Π°Ρ‡Π°Π»Π°, символы, Π½Π΅ входящиС Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для случая CP1251 β€” Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ английский ΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°), Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚, вмСсто Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π°Π±Ρ€Π°ΠΊΠ°Π΄Π°Π±Ρ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ·ΠΊΠΈΠ΅ строковыС константы ΠΈΠΌΠ΅ΡŽΡ‚ ANSI-ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ кирилличСскиС строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π½Π° нСрусской систСмС Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ (Π² Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ зависимая ΠΎΡ‚ систСмной Π»ΠΎΠΊΠ°Π»ΠΈ Π°Π±Ρ€Π°ΠΊΠ°Π΄Π°Π±Ρ€Π°). Π”Π΅Ρ€ΠΆΠ° Π² Π³ΠΎΠ»ΠΎΠ²Π΅ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ излоТСнию ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сСрии Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

МСнСС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅, Π½ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π’ любом случаС, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡŽΠ½ΠΈΠΊΠΎΠ΄Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ Π² консоли. (Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Π±Π·Π°Ρ† «слоТного» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.)

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваши исходники Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ CP 1251 (это Π½Π΅ само собой разумССтся, особСнно Ссли Ρƒ вас Π½Π΅ русская локаль Windows). Если ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ русских Π±ΡƒΠΊΠ² ΠΈ сохранСнии Visual Studio ругаСтся Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ символы Π² Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ CP 1251.

(1) Если ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ваш, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ страницу ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° вашСй систСмС. Для этого сдСлайтС Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ:

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° способа: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· ΠΊΠ½ΠΈΠ³ Π½Π°Ρ‡Π½ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». НСдостатки: смСна рССстра ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π·Π° собой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° консоли мСняСтся глобально ΠΈ ΠΏΠ΅Ρ€ΠΌΠ°Π½Π΅Π½Ρ‚Π½ΠΎ β€” это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Плюс эффСкт Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π° ΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° консоли). Плюс ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΡŽΠ½ΠΈΠΊΠΎΠ΄Π½Ρ‹Ρ… способов.

(2) Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ консоли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ. Из вСТливости ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° мСсто!

Π­Ρ‚ΠΎ дСлаСтся Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° внСшнСй ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

(Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅

ΠΈ дальшС ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.)

МоТно ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ эти Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π² класс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ плюшками автоматичСского управлСния Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² C++.

(Ссли выполняСтС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ· Бтрауструпа ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° std_lib_facilities.h )

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π½Π΅ русский, Π° ΠΊΠ°ΠΊΠΎΠΉ Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык, просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ 1251 Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ (список ΡƒΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅), Π½ΠΎ, разумССтся, Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π½Π΅ гарантируСтся.

ΠžΡΡ‚Π°Π»ΠΈΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΈΡ… для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ»ΠΎΡ…ΠΎ (Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ)

ΠœΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ β€” использованиС конструкции setlocale(LC_ALL, «Russian»); Π£ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² Visual Studio 2012) Π³ΠΎΡ€Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π²Π²ΠΎΠ΄ΠΎΠΌ русского тСкста: Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ тСкст пСрСдаётся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! НСрусский тСкст (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, грСчСский) ΠΏΡ€ΠΈ этом вовсС Π½Π΅ вводится с консоли. Ну ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π½Π΅ΡŽΠ½ΠΈΠΊΠΎΠ΄Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ исходники Π² Unicode (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8).

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ слСдуСт с сигнатурой

Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ частично спасаСт пСрСсохранСниС исходников Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8 с ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ символом BOM, Π±Π΅Π· Π½Π΅Π³ΠΎ Visual Studio Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Β«ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅Β» строки с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ вСсьма своСобразно. Однако, ΡƒΠΊΠ°Π·Π°Π² BOM (Byte Order Mark β€” ΠΌΠ΅Ρ‚ΠΊΠ° порядка Π±Π°ΠΉΡ‚ΠΎΠ²) ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8 β€” символ, ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ трСмя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ 0xEF, 0xBB ΠΈ 0xBF, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡƒΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8 Π² любой систСмС

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setlocale:

ΠœΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ β€” использованиС конструкции setlocale(LC_ALL, «Russian»); Π£ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² Visual Studio 2012) Π³ΠΎΡ€Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Π²Π²ΠΎΠ΄ΠΎΠΌ русского тСкста: Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ тСкст пСрСдаётся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! НСрусский тСкст (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, грСчСский) ΠΏΡ€ΠΈ этом вовсС Π½Π΅ вводится с консоли. Ну ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх Π½Π΅ΡŽΠ½ΠΈΠΊΠΎΠ΄Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π― добавлю ΠΏΠΎ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ побольшС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: Π•Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚!

Начнём с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ: Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ страны ΠΈΠ»ΠΈ языка, хотя Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΎΠ½Π° сработаСт, Π° языковый ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, согласно ISO 3166-1. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ: «ru-RU». Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅: Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ написано Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΌ ΠΏΠΎ Π±Π΅Π»ΠΎΠΌΡƒ: «If execution is allowed to continue, the function sets errno to EINVAL and returns NULL.» Π§Ρ‚ΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ толкуСтся: ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки, функция устанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ errno Π² EINVAL ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ NULL.

Π’ случаС возникновСния ошибки, errno всСгда Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ EINVAL, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Π½Π΅ Π²Π΅Ρ€Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Ρ‘ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π΅Ρ‚ смысла, Π° Π²ΠΎΡ‚ исполнСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setlocale выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

И Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ setlocale устанавливаСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ANSI ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, поэтому ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ грСчСскиС, испанскиС, китайскиС ΠΈ Π΄Π°ΠΆΠ΅ японскиС Π·Π½Π°ΠΊΠΈ. Для русского языка это Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½ΠΎΠΌΠ΅Ρ€ 1251.

И Π²Π°ΠΆΠ½ΠΎ: ΠΏΠΎΡ‡Π΅ΠΌΡƒ эта функция являСтся Π½Π°Π΄Ρ‘ΠΆΠ½Π΅ΠΉ, Π½Π΅ΠΆΠ΅Π»ΠΈ прямая установка Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов Ρ‡Π΅Ρ€Π΅Π· SetConsoleCP, ΠΈΠ±ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ надстройки ΠΈΠΌΠ΅Π½Π½ΠΎ для раскладки ΠΏΠΎΠ΄ язык. Начиная ΠΎΡ‚ стандарта отобраТСния Π΄Π°Ρ‚Ρ‹, заканчивая Π·Π½Π°ΠΊΠ°ΠΌΠΈ раздСлитСля.

И Π΄Π°, Π½Π΅ стоит ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ языковый ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄Π΅ «ru», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² зависимости ΠΎΡ‚ сборки самой ось ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ языковых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ru-BY, ru-UA, ru-MO ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языковыС стандарты, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚ ru-RU. И ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π½ΠΎ нСльзя ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ «Russia», «Russian», «Russian Federation» (Π΄Π°, Ρ‚Π°ΠΊΡƒΡŽ Π²Π°ΠΊΡ…Π°Π½Π°Π»ΠΈΡŽ ΡƒΠΆΠ΅ встрСчал ΠΏΠ°Ρ€Ρƒ Ρ€Π°Π·). Π₯отя функция ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ ΠΏΠΎ названию Ρ€Π΅Π³ΠΈΠΎΠ½Π°, Π½Π΅ всСгда Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ это ΡƒΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ «Π ΠΎΡΡΠΈΡ» ΠΈΠ»ΠΈ «Π ΡƒΡΡΠΊΠΈΠΉ» ΡƒΠΆΠ΅ Π½Π° нашСй раскладкС. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ основная ошибка, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ функция setlocale Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ отказываСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

И Π΄Π°, для прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ юникогда, стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ _wsetlocale. Она ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π°, ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ настройки для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ прилоТСния Π² Visual Studio настроСн Π² Ρ€Π΅ΠΆΠΈΠΌ юникода, Ρ‚ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ _wsetlocale, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ setlocale, ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π½Π΅ приспособлСна ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с юникодом Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊ.

БовсСм Π·Π°Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция setlocale ΠΈ _wsetlocale, Π² случаС успСха Π²Π΅Ρ€Π½Ρ‘Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€Π΅Π³ΠΈΠΎΠ½Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² нашСм случаС строку «ru_RU\0».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² консоли Windows

Π₯одят ΡƒΠΏΠΎΡ€Π½Ρ‹Π΅ слухи, Ρ‡Ρ‚ΠΎ Π² Linux Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ Π² консоли. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ для Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ мСньшС β€” для виндузятников.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π² Microsoft ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ Windows, Ρ‚ΠΎ ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ для ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π°Ρ‡Π΅ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ. А ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, которая использовалась Π² MS DOS, оставили. Π’ΠΈΠ΄ΠΈΠΌΠΎ Π² цСлях ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. И ΡΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ ΠΆΠΎΠΏΠ°. Π‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²Ρ‹Ρ… вСрсий Windows ситуация Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΠ»Π°ΡΡŒ. Π’.ΠΊ. консоль, ΡƒΠΆΠ΅ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, унаслСдовала ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΎΡ‚ MS DOS.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ сСйчас для ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π²Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ: cp866 β€” старая досовская ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ cp1251 (ΠΎΠ½Π° ΠΆΠ΅ windows-1251) β€” новая, ΠΎΡ‚ Windows. Π’ настоящСС врСмя Π΄Π΅Π»ΠΎ ослоТняСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ созрСл Unicode, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π΅Ρ‰Π΅ нСсколько ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π΅ совмСстимых с cp1251 ΠΈ с cp866, ΠΈ Π½Π΅ совсСм совмСстимых ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Но ΠΎ Unicode ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π±ΡƒΠΊΠΎΠ²ΠΊΠΈ Β«cpΒ» Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ codepage β€” кодовая страница Π² смыслС «страница ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ символов».

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ строки ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΈΠ½Π΄Π° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π³Π΄Π΅-Ρ‚ΠΎ Π² своих Π³Π»ΡƒΠ±ΠΈΠ½Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ прСобразования ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ, выдавая Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π½Π΅ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ΅.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°ΠΌΠΈ: всС строки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

ΠŸΡ€ΠΈ нСсоблюдСнии этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сравнСниС ΠΈ сортировка строк (Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ символов), ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Ρ‘Π½ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ строк Π½Π° консоль ΠΈΠ»ΠΈ Π² Ρ„Π°ΠΉΠ».

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΉ камСнь:

Π’ ΠΎΠΊΠ½Π΅ консоли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΌ растровыС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ (Raster fonts), ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ отобраТаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ кодовая страница ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ производитСля оборудования (OEM), установлСнная с Windows XP. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ страницы ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π² полноэкранном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Π² ΠΎΠΊΠ½Π΅ консоли, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ True Type.

ΠŸΡ€ΠΈ этом Π² самой консоли ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ (Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ использовании растровых ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°ΠΌΠΈ: Π² настройках консоли установитС для Π²Ρ‹Π²ΠΎΠ΄Π° ΡˆΡ€ΠΈΡ„Ρ‚ True Type.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

И Π΅Ρ‰Π΅. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π½ΠΈ Unicode, Π½ΠΈ UTF-8, Π½ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ строки Π² консоли Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρƒ мСня с Π½ΠΈΠΌΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΡƒΡ‚Π½ΠΎΠ³ΠΎ Π½Π΅ Π²Ρ‹ΡˆΠ»ΠΎ.

Π”Π°Π»Π΅Π΅ нСсколько совСтов для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с этими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Π‘Π°ΠΌΡ‹ΠΉ простой (ΠΈ самый Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ) способ

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Β«Ρ€ΠΎΠ΄Π½ΠΎΠΉΒ» для консоли ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницС, Π² cp866. Π’.Π΅. всС строки с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ написаны Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ cp866. Π’ этой ΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всС Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. И Π² этой ΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈ всС Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. ПолноС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ Π½Π° 20 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π² MS DOS.

Если ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ Π΅ΡΡ‚ΡŒ IDE, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² консоли β€” особых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚. Если ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Windows GUI, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ понятныС слоТности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ IDE ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ cp1251, Β«Ρ€ΠΎΠ΄Π½ΠΎΠΉΒ» для Windows. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΊΠ°ΠΊ Π±Ρ‹ Π½ΠΈ хаяли MS Visual Studio, ΠΎΠ½Π° ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с исходными тСкстами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΡ… отобраТая Π² своСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° консоль Windows 7

Бпособ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π½Π° консоль, ΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ Windows 7. Под Windows XP это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (ΠΏΡ€ΠΈΠΌ. Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° β€” всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚).

Π‘Π°ΠΌΠΎΠ΅ простоС β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ setlocale() :

Ѐункция setlocale() устанавливаСт ΠΈΠ»ΠΈ измСняСт для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ спСцификС (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ задаСтся Π² Π°ΠΏΠΏΠ»Π΅Ρ‚Π΅ Region and Language Π² Control panel). ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² MSDN.

Π’Π°ΠΊΠΆΠ΅ популярСн ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π°:

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ символ LC_ALL Ρ€Π°Π²Π΅Π½ 0 ΠΈ подразумСваСтся, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС установлСна страна прСбывания Россия (локализация самой Π’ΠΈΠ½Π΄Ρ‹ Ρ€ΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚). Но Π»ΡƒΡ‡ΡˆΠ΅ всС-Ρ‚Π°ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ.

Ѐункция достаточно капризная. Π­Ρ‚ΠΎ касаСтся Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НСкоторыС значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π° ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ систСмах (компиляторах?) Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° консоль

Π’ качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±Π΅ΠΈΠΌ функциям пСрСдаСтся Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ страницы. Π’ нашСм случаС (ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°) β€” это 1251.

Π­Ρ‚ΠΎΡ‚ способ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ для Windows XP, ΠΈ для Windows 7. ΠžΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½ΠΎ с Dev-C++ 5.6.3 (компилятор TDM-GCC 4.8.1 ΠΈ MS Visual Studio 2012.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ тСстовая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° дСмонстрируСт Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π½Π° консоль, Π²Π²ΠΎΠ΄ кирилличСской строки с консоли, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки, сравнСниС Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки с эталонной ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки Π² Ρ„Π°ΠΉΠ».

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ cp1251:

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½Π° для экспСримСнтов с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΈ ΠΈΡ… сочСтаниями.

Для практичСских Ρ†Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ

Π’ Windows API Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ (Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Ρ‹) Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ OEM ANSI (Ρ‚Π°ΠΊ сказано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ). ΠŸΡ€ΠΎΡ‰Π΅ говоря, Π² контСкстС рассматриваСмого вопроса, это ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ cp866 (OEM) ΠΈ cp1251 (ANSI).

Β«ΠžΠΏΠ°ΡΠ½Ρ‹Π΅Β» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· контроля Π΄Π»ΠΈΠ½Ρ‹ строки:

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€Ρ‹. НулСвой символ считаСтся ΠΊΠΎΠ½Ρ†ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки.

«БСзопасныС» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ строки:

Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΈ количСство символов для Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки. НулСвыС символы Π½Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ†ΠΎΠΌ строки. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство символов.

Π’Π°ΠΊΠΆΠ΅ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ строки Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ послС Π²Π²ΠΎΠ΄Π° строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π² случаС, Ссли ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

P. S. НС судитС строго β€” это ΠΌΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Π² написании ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π― Ρ‚Π°ΠΊ посмотрСл, люди ΠΏΠΈΡˆΡƒΡ‚, Π° Ρ‡Π΅ΠΌ я Ρ…ΡƒΠΆΠ΅? Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ появилось Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. А оказалось, Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. И Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΈ ошибки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ.

На написаниС ΡΡ‚Π°Ρ‚ΡŒΠΈ мСня сподвиг вопрос ΠΎ «кракозябрах Π² XPΒ». Под это Π΄Π΅Π»ΠΎ ΠΈΠ· Ρ€ΡƒΠΈΠ½ Π΄Π°ΠΆΠ΅ Π±Ρ‹Π» ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ старый ΠΊΠΎΠΌΠΏ с XP. И оказалось, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто. ΠŸΡ€ΠΈΡˆΠ»ΠΎΡΡŒ провСсти нСбольшоС исслСдованиС, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ я здСсь ΠΈ ΠΈΠ·Π»ΠΎΠΆΠΈΠ». Π’Π°ΠΊΠΆΠ΅ скомпилировал Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ ΠΈΠ· ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² сайта, Ρ‡Ρ‚ΠΎ Π±Ρ‹ всС Π±Ρ‹Π»ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Насколько Ρƒ мСня это ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ β€” Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²Π°ΠΌ. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ замСчаниям ΠΈ дополнСниям Π² коммСнтариях ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *