Кириллица в консольном приложении. Или обойдёмся без setlocale(LC_ALL, "rus");

Правка ru1, от VenyaSob, 2019-01-26 23:47:04

Вы знаете, что программа для вывода "Hello World!" в консоли может весить более 600 Килобайт ! Обычно при использовании заголовочного файла #include так и происходит. Как уменьшить размер EXE-файла примерно в 20 раз и работать с русскими строками? Вот два проверенных способа:

#include   <stdio.h>
#include  <locale.h>       //  здесь "живёт" setlocale(LC_ALL, "rus");

 

int main()
{
	
    setlocale(LC_ALL, "rus");
			 	
    printf("Верные символы %d", 77); 	
  
return 0;
}

#include <windows.h>
#include   <stdio.h>

LPCSTR Rus(LPCTSTR pszIn)
{
    static char szBuffer[MAX_PATH];
    CharToOemBuff(pszIn, szBuffer, MAX_PATH);
    return szBuffer;
} 

int main()
{
			 	
    printf(Rus("Верные символы %d"), 77); 	
  
return 0;
}

В обоих случаях исполняемый файл у меня занимает около 28 Килобайт.

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru6 Русский VenyaSob 2019-02-22 23:42:43 73
ru5 Русский VenyaSob 2019-02-22 21:12:17 4
ru4 Русский VenyaSob 2019-02-22 21:11:07 801 Мелкая правка: 'ующее:\n\nВариант 1.\n\nЗапуст' -> 'ующее:\n\nЗапуст'
ru3 Русский VenyaSob 2019-01-26 23:49:23 44
ru2 Русский VenyaSob 2019-01-26 23:48:03 2 Мелкая правка: ' #include <iostream> так и про' -> ' #include iostream так и про'
ru1 Русский VenyaSob 2019-01-26 23:47:04 1119 Первая редакция (опубликовано)