VenyaSob's blog

By VenyaSob, history, 7 years ago, In Russian

Вы знаете, что программа для вывода "Hello World!" в консоли может весить более 600 Килобайт ! Обычно при использовании заголовочного файла #include iostream так и происходит. Как уменьшить размер 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;
}

Радикальный способ исправления кодировки в Dev-C++ я нашёл здесь: http://kpolyakov.spb.ru/school/c/faq.htm

В консольных приложениях (похожих на текстовый режим) русские буквы выводятся к кодировке CP-866, а в оболочке Dev-C++ они набираются в кодировке CP-1251. Это значит, что вместо русских букв вы увидите «кракозябры». Чтобы этого не случилось, кодировку нужно исправить с помощью простой дополнительной программы. Сделайте следующее:

Запустите оболочку Dev-C++ и войдите в меню Сервис-Параметры компилятора. Перейдите на вкладку Компилятор и добавьте два параметра -fexec-charset=cp866 -finput-charset=cp1251 как показано на рисунке (см. источник).

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

  • Vote: I like it
  • -26
  • Vote: I do not like it