Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: C++: Русские символы при вводе в консольном приложении.  (Прочитано 2051 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
  Здравствуйте. Такая проблема. При обработке переменной типа char, содержащую русские символы, возникают проблемы. то есть компилятор ошибки не выдает, но например функция setw(10) не выделит именно 10 символов, а выдаст меньше. или при вводе данных в цикле, цикл прерывается на второй итерации. хотя их заведомо больше.
  под виндой есть заголовочный файл <windows.h> кажется, и в нем есть функция getconsolecp(). Так вот там корректно обрабатываются переменные, содержащие русские символы.
 Подскажите, как быть?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Проблема в том что в винде cp1251 или cp866 (однобайтные кодировки) а в линуксе у тебя скорее всего utf-8 (кодировка с переменной длиной сивола, ага, вот такие пироги бывают)
поэтому берешь wchar_t прикручиваешь к проге локаль и работает везде


Оффлайн FluffyMan

  • Автор темы
  • Активист
  • *
  • Сообщений: 276
  • Debian 6
    • Просмотр профиля
https://forum.ubuntu.ru/index.php?topic=131535.0 - так понимаю, моё решение где-то здесь. спасибо, поищу, попробую - отпишусь.

Пользователь решил продолжить мысль 17 Апреля 2011, 19:16:47:
криворукость моя не дает ничего сделать. обойдусь латинскими символами вобщем. спасибо
« Последнее редактирование: 17 Апреля 2011, 19:16:47 от Fluffy1234567890 »

 

Страница сгенерирована за 0.087 секунд. Запросов: 25.