Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lect12

.pdf
Скачиваний:
7
Добавлен:
06.02.2016
Размер:
909.11 Кб
Скачать

"Разборполётов"

Программа№1

Student size is 50

Student read from file (50bytes):

Программа№2

Student size is 52

Student read from file (50bytes):

Проблемавыравнивания

Программачтения:

Проблемавыравнивания

Программазаписи:

Проблемавыравнивания

Приразличныхнастройках компилятораадресачленовструктур выравниваютсяпо-разному:на границу1байта,2-х,4-хит.д.

Поумолчаниювыравнивание выполняетсянаграницуслова:4байта

Выравниваниевлияетнаадресполя структуры!

Проблемавыравнивания

Структура

Адреспри

Адреспри

struct student {

/Zp1

/Zp4

0

0

int nz;

char name[40];

4

4

unsigned short course;

44

44

int numNeud;

46

48

};

 

 

 

 

 

Важно!

Программы,работающиес двоичнымифайламии выполняющиечтение/запись структурдолжныбыть

откомпилированысодинаковым режимомвыравнивания!

Работасwide char черезпотоки

Всовременныхпрограммахтребуется поддержканациональныхкодировок.

Наиболееправильныйвариант поддержкинациональныхкодировок– этоиспользованиемногобайтных наборовсимволов.

ВC++ дляподдержкиразныхнаборов символовиспользуетсятипwchar_t – типchar с"широкими"символами

Работасwide char черезпотоки

Дляподдержкиwide char надо использоватьальтернативныеклассы потоковиобъекты:

Объектыwcin, wcout, wcerr, wclog

Классы:wistream, wostream, wiostream, wios, wifstream, wofstream, wstrstream

Простоеправило:символьныйтип char – обычныйкласс/объектпотока, символьныйтипwchar_t – потокс'w'.

Спасибозавнимание!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]