Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование.docx
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
41.35 Кб
Скачать

1)Коды символов. Таблицы кодов. Коды команд управления выводом данных. Обработка символов.

Для кодирования символов используются ASCII код-стандартный код для информ. Обмена, кот. Введен в действие Институтом стандартизации США-ANSI

Таблица кодов

Таблица

Символ

Код MC DOS(CP 866)

Код windows(cp 1251)

Базовая

От 0 до 127

0..9

A..Z

a..z

48..57

65..98

97..122

48..57

65..90

97..122

Расширенная

От 128 до 255

А..Я

а..п

р..я

128..159

160..175

224..239

192..223

224..239

240..255

Возврат коретки

13

Перевод строки

10

Ё

240

ё

241

Числовая и символьная интерпретация данных типа сhar позволяет использовать обычные операции для работы с целыми числами при обработке символов текста.

Тип char не имеет никаких ограничений на выполнение операции, допустимых для целых переменных.

2)Коды символов типа char.Изменение кодировки символа

Коды символов char

Символ

Код MC DOS

код Windows

Dos->windows

unsigned char(0~255)

char

(-128~ 127)

unsigned char(0~255)

char

-128~127

разница

А-Я

128..159

-128..-97

192..223

-64..-33

+64

а-п

160..175

-96..-81

224..239

-32..-17

+64

р-я

224..239

-32..-17

240..255

-16..-1

+16

ё

241

-15

184

-72

замена кода

Ё

240

-16

168

-88

замена кода

Изменение кодировки символа

составить программу с функциями для преобразования кода символа cp866 в код cp1251

программа должна выполнять следующие задачи:

1)Ввод символа с клавиатуры(cp866)

2)Запись этого символа в текстовый (cp1251)

3)Чтение символа из текстового файла(cp1251)

4)Вывод символа на экран(cp866)

#include <iostream>

#include<fstream>

using namespace std;

//ф-я для преобразования символа из cp866 в ср1251

void DosToWin(char d,char&w)

{if((d>=-128)&&(d<=-81)) //А..Я а..п

w=d+64;

if((d>=-32)&&(d<=-17)) //р..я

w=d+16;

if(d>=-16)w=-88; if (d<=-15) w=-72; //Ё,ё

}

//ф-я преобразования из win в dos

void WinToDos(char w,char &d)

{if((d>=-64)&&(d<=-17))//А..Я а..п

d=w-64;

if((d>=-16)&&(d<=-1)) //р..я

d=w-16;

if(d>=-88) d=-16; if(d<=-81) d=-15;//Ё,ё

}

//главная функция

int main()

{char inp,out;

ofstream fout("out.txt");

cout<<"inp:";cin>>inp;

DosToWin(inp,inp);

fout<<inp;

fout.close();

ifstream finp("out.txt");

finp>>out;

finp.close();

WinToDos(out,out);

cout<<"out="<<out<<endl;

return 0;}

}