Путевской Виктор (vipernn) wrote,
Путевской Виктор
vipernn

Categories:

Рабочее.

Неожиданно выяснилось, что в библиотеке STL имя файла для чтения или записи можно задать только обычной строкой (символ равен одному байту). Все бы ничего, но кириллица не всегда дружит с обычными строками. Поэтому для надежности надо использовать "широкие" строки с двухбайтовыми символами (Unicode, например). Соответственно надо преобразовать двухбайтовую строку в однобайтовую. Функции преобразования отдельных символов в обоих направлениях существуют. А вот для целых строк такого не предусмотрено. Через некоторое время нашел способ преобразования через специальный класс-конвертор. Даже написал над ним функции обертки - ws2s и s2ws. И тут-то выяснилось, что все гораздо проще. Оказывается можно просто вызвать конструктор обычной строки, передав в него указатели (итераторы) на первый и следующий за последним символы, то есть begin() и end() и конструктор сделает все сам как надо. Аналогичным образом можно сделать и обратное преобразование. То есть все очень просто на самом деле.

З.Ы. А вот почему при задании имени файлов нет возможности использования "широких" строк совершенно непонятно.
Tags: it, интересное, полезное, программирование, рабочее, странное
Subscribe

  • Екатеринбург 2021. Часть 26.

    На севере Екатеринбурга, а точнее в районе пресловутого Уралмаша имеется шикарный объект - Белая башня. Собственно это водонапорная башня. Но…

  • Екатеринбург 2021. Часть 25.

    Вчера было за транспорт, сегодня немного за гостиницу. Гостиница сети "Marins Park Hotels". Ранее несколько раз останавливался в гостинице этой сети…

  • Екатеринбург 2021. Часть 24.

    Сегодня речь пойдет за общественный транспорт. В основном за метро и немного за трамвай. В Екатеринбурге одна линия метро, состоящая из 9 станций. В…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment