Технология программирования. Базовые конструкции C/C++. Липачев Е.К. - 133 стр.

UptoLike

Составители: 

133
Приложение. Русификация консольного ввода-вывода
При выполнении консольных приложений тексты, содержащие
символы кириллицы, отображаются неправильно в виде знаков
псевдографики
printf("\nПрограммирование на C\n");
cout<<"\nПрограммирование на C++\n";
Это связано с различием кодировок, используемых в среде подготовки
программ и консольном окне. В редакторе среды программирования
(например, MS Visual Studio) используется кодировка cp1251
(―Кириллическая Windows‖), а в окне консоли – кодировка cp866 (иначе
DOS-кодировка).
Есть несколько способов решить вопрос.
Первый, самый простой перейти на латиницу и записывать все
поясняющие тексты при выводе латинскими буквами.
Следующий вариант решения перекодировка сообщений перед их
выводом.
// Изменение кодировки cp1251 на cp866
#include <iostream>
using namespace std;
char * AnsiToOem(char *stroka);
int _tmain(int argc, _TCHAR* argv[])
{
printf("\nПрограммирование на C\n");
cout<<"\nПрограммирование на C++\n";
char s1[]="\nПрограммирование на C\n";
char s2[]="\nПрограммирование на C++\n";
printf(AnsiToOem(s1));
cout<<AnsiToOem(s2);
return 0;
}
char * AnsiToOem(char *stroka)
{
int cnt,i=0;
char ch;
Приложение. Русификация консольного ввода-вывода
     При выполнении консольных приложений тексты, содержащие
символы кириллицы, отображаются неправильно – в виде знаков
псевдографики
printf("\nПрограммирование на C\n");
cout<<"\nПрограммирование на C++\n";




     Это связано с различием кодировок, используемых в среде подготовки
программ и консольном окне. В редакторе среды программирования
(например, MS Visual Studio) используется кодировка cp1251
(―Кириллическая Windows‖), а в окне консоли – кодировка cp866 (иначе
DOS-кодировка).
     Есть несколько способов решить вопрос.
     Первый, самый простой – перейти на латиницу и записывать все
поясняющие тексты при выводе латинскими буквами.
     Следующий вариант решения – перекодировка сообщений перед их
выводом.
// Изменение кодировки cp1251 на cp866
#include 
using namespace std;
char * AnsiToOem(char *stroka);

int _tmain(int argc, _TCHAR* argv[])
{
    printf("\nПрограммирование на C\n");
    cout<<"\nПрограммирование на C++\n";
    char s1[]="\nПрограммирование на C\n";
    char s2[]="\nПрограммирование на C++\n";
    printf(AnsiToOem(s1));
    cout<