Форматирование. Интернационализация

   
На этом шаге мы рассмотрим вопросы, связанные с интернационализацией данных.

   
Форматы ввода-вывода также адаптируются к национальным стандартам. Функции, определенные для этой цели в классе ios_base, перечислены
в таблице 1.

Таблица 1. Функции интернационализации

Функция Описание
imbue(loc) Назначение объекта локального контекста
getloc() Получение текущего объекта локального контекста

   
С каждым потоком данных связывается некоторый объект локального контекста. По умолчанию исходный объект локального контекста создается как
копия глобального объекта локального контекста на момент конструирования потока данных. В частности, объект локального контекста определяет
параметры форматирования чисел (например, символ, используемый в качестве десятичной точки, или режим числового/строкового представления логических величин).

   
В отличие от аналогичных средств С средства интернационализации стандартной библиотеки C++ позволяют задавать локальные
контексты на уровне отдельных потоков данных. Например, такая возможность позволяет выполнять чтение вещественных чисел в американском
формате и последующей записи в немецком формате (в котором вместо "десятичной точки" используется запятая).

   
При работе с потоками данных часто возникает задача приведения отдельных символов (в первую очередь управляющих) к кодировке потока данных.
Для этого в потоках данных поддерживаются функции преобразования, представленные в таблице 2.

Таблица 2. Вспомогательные функции интернационализации

Функция Описание
widen(c) Преобразование символа с типа char к кодировке, используемой потоком
narrow(c,def) Преобразование символа с из кодировки, используемой потоком, к типу char (если такого символа не существует, возвращается def)

   
Например, следующая команда преобразует символ новой строки в кодировку, используемую потоком данных:

strm.widen('\n');

   
Со следующего шага мы начнем рассматривать доступ к файлам.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий