Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1

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

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

Студворк — интернет-сервис помощи студентам
В общем надо считать строку из файла. Если однобайтовая - всё ок. Как только wchar_t - начинается дурдом. getline в упор не видит какой параметр ему передают и забивает каждый байт в каждый символ строки. Т.е. для строки типа wstring строка в файле "666" которая в hex выглядит как "360036003600" вводится как "003600000036000000360000". Из-за таких особенностей я не могу работать с wide-символами. Кто знает как победить это дело? Может какой-нибудь wgetline есть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2015, 10:56
Ответы с готовыми решениями:

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

(МК51) Стек: Двухбайтовые BCD числа массива 20H-2FH РПД преобразовать в двухбайтовые двочиные массива 30H-3FH
Двухбайтовые двоично-десячитные числа массива 20H-2FH РПД преобразовать в двухбайтовые двочиные массива 30H-3FH. P.S. Программирование...

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

3
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
31.01.2015, 13:46
Enno, Посмотри тут, код под вторым спойлером в посте. Нужно будет убрать из начала примера (main) вот эти строки
C++
1
2
3
4
    typedef basic_streambuf_win32<wchar_t> wstreambuf_win32;
 
    wstreambuf_win32 wb;
    std::wcout.rdbuf(&wb);
1
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
31.01.2015, 14:18  [ТС]
Ну да, теперь взлетело. А в чём фишка? В том что с помощью imbue locale поменяли на какую-то хитрую? Я не шарю просто. Хотя вот в MinGW всё работает, считывается нормально без таких "преобразования".
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
31.01.2015, 14:25
Цитата Сообщение от Enno Посмотреть сообщение
А в чём фишка?
В том, что локаль по-умолчанию пытается преобразовывать к char.
Этим кодом, мы наоборот отключили какое-либо преобразование. Этот класс - заглушка. Позволяет на выходе получить ровно то, что пришло из файла.
В MinGW, видимо, преобразование и так не делается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2015, 14:25
Помогаю со студенческими работами здесь

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

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

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

Как считать из файла нестандартные символы
Всем доброго времени суток! Задача: необходимо считать из файла нестандартные символы, такие как параграф (Dec: 167), знак отрицания...

Как считать матрицу с помощью refedit?
просьба не смеяться) vba не изучал)) как сделать чтобы выделенное в refedit оказалось в массиве? буду очень благодарен..


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru