Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Enno
267 / 170 / 38
Регистрация: 25.08.2014
Сообщений: 1,088
Записей в блоге: 1
#1

Как с помощью getline считать двухбайтовые символы? - C++

30.01.2015, 10:56. Просмотров 536. Ответов 3
Метки нет (Все метки)

В общем надо считать строку из файла. Если однобайтовая - всё ок. Как только wchar_t - начинается дурдом. getline в упор не видит какой параметр ему передают и забивает каждый байт в каждый символ строки. Т.е. для строки типа wstring строка в файле "666" которая в hex выглядит как "360036003600" вводится как "003600000036000000360000". Из-за таких особенностей я не могу работать с wide-символами. Кто знает как победить это дело? Может какой-нибудь wgetline есть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2015, 10:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как с помощью getline считать двухбайтовые символы? (C++):

Считать символы из строки между разделителями - C++ Builder
Доброго времени суток, уважаемые форумчане!!! Необходимо считать все символы, которые находятся между символами "{" и "}". Вот строка:...

Как в UnicodeString быстро заменить символы на другие символы ? - C++ Builder
Собственно, в названии темы вопрос. Например : String Data = "12.10.2012"; Как быстро, без конвертации в char*, заменить,...

Считать строку getline и вывести ее в ListBox - C++ WinAPI
считываю строки из файла и пытаюсь вывести в ListBox. Если в файле записано: 1 2 3 то в ListBox они выводятся 1|||||||| ...

Как с помощью WINAPI организовать ввод IP-адреса в поле EDIT с помощью маски - C++ WinAPI
Привет всем. Помогите пожалуйста. Как с помощью WINAPI организовать ввод в поле EDIT с помощью маски. Мне нужно вводить IP-адресс. EDIT...

С помощью cin.getline считать все строки файла в контейнер (вектор или очередь) - C++
Можете пожалуйсто написать код, где можно с помощью cin.getline считать все строки файла в контейнер (вектор или очередь), потом из...

Функция getline(). Как исключить знаки препинания (символы)? - C++
Задача следующая: Из файла source.txt прочесть слово Отправить запрос в БД Получить перевод слова Записать в файл...

3
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
31.01.2015, 13:46 #2
Enno, Посмотри тут, код под вторым спойлером в посте. Нужно будет убрать из начала примера (main) вот эти строки
C++
1
2
3
4
    typedef basic_streambuf_win32<wchar_t> wstreambuf_win32;
 
    wstreambuf_win32 wb;
    std::wcout.rdbuf(&wb);
1
Enno
267 / 170 / 38
Регистрация: 25.08.2014
Сообщений: 1,088
Записей в блоге: 1
31.01.2015, 14:18  [ТС] #3
Ну да, теперь взлетело. А в чём фишка? В том что с помощью imbue locale поменяли на какую-то хитрую? Я не шарю просто. Хотя вот в MinGW всё работает, считывается нормально без таких "преобразования".
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
31.01.2015, 14:25 #4
Цитата Сообщение от Enno Посмотреть сообщение
А в чём фишка?
В том, что локаль по-умолчанию пытается преобразовывать к char.
Этим кодом, мы наоборот отключили какое-либо преобразование. Этот класс - заглушка. Позволяет на выходе получить ровно то, что пришло из файла.
В MinGW, видимо, преобразование и так не делается.
0
31.01.2015, 14:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2015, 14:25
Привет! Вот еще темы с ответами:

Как узнать, был ли найден в строке, читаемой с помощью функции std::getline(), символ \n ? - C++
Как узнать результат работы в std::getline(SS, Res, '\n'); был найден в потоке первод строки или нет?

getline() (не получается считать информацию с файла) - C++
Здравствуйте. У меня есть файл вида: volleyball 1 sports.ru 500 volleyball football Первая строка - искомый тег, вторая -...

Как считать русские символы как строку в консоли - C++
На консоль текст русский выводиться,а вот при считывании он в казябриках. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Как считать из файла символы и цифры одновременно? Структуры - C++
Имеется файл txt с таким заполнением: Gingi 25 12 1 Klinl 36 74 1 Frogo 963 32 2 Hlolo 69 85 1 Frodo 369 42 2 Ringo 951 43 1 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru