Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
2 / 1 / 1
Регистрация: 16.11.2017
Сообщений: 16
1

Считывание русских слов из txt файла (не консоль)

30.03.2018, 09:19. Показов 7049. Ответов 2

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Стоит задача считать из txt файла русские слова и записать их в динамический массив символов (char* или wchar_t*). При считывании из файла слова функциями fscanf(f, "%s", c) или fwscanf(f, L"%s", c) - пробовал оба варианта - в переменную записывается абракадабра. При этом если записывать слова внутри кода (т.е. wchar_t c = L"слово"), в просмотре локальных переменных все отображается нормально.
Как можно решить проблему с кодировкой? Может в среде можно подключить какой-то специальный модуль?

Работаю в Visual Studio 2015, пишу приложение для Windows на Visual C++, не консольное, посему setlocale и подобные команды не помогают =(
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2018, 09:19
Ответы с готовыми решениями:

Считывание текста у txt файла.Прoблема с кириллицой(с кодировкой)(консоль)
Проблема в следующем,когда я создаю txt файл обычным текстовым редактором windows а он используют...

Вывод русских слов в консоль
Здравствуйте! Хотел написать консольное приложение для собственного пользования и столкнулся, при...

Считывание из файла русских букв
Здравствуйте, есть вот такой код с английским алфавитом работает на ура, но если символы русские...

Считывание русских символов из файла
Всем привет Не получаеться считать русские символы из файла в переменную типа string. Я пишу...

2
2376 / 834 / 317
Регистрация: 10.02.2018
Сообщений: 1,968
30.03.2018, 09:53 2
Лучший ответ Сообщение было отмечено perotto как решение

Решение

Для текстового файла кодировка как таковая не предусмотрена. Это означает, что если в файл записаны ASCII строки, то и читать из него нужно ASCII строки (char). Если записаны UTF-16 строки, то и читать из него нужно UTF-16 (wchar_t). При несогласованном чтении никакой автоматической перекодировки не предусматривается. Для корректного отображения нужно прочесть строки в оригинальном формате и затем самостоятельно перекодировать в нужный.

Существует механизм задания кодировки (BOM) через несколько специальных символов в начале файла. Этот механизм широко используется, но не является обязательным к присутствию в текстовых файлах. Можно открыть файл в бинарном режиме и прочесть несколько первых байт, если они соответствуют специальным комбинациям, то кодировку файла можно считать известной, в противном случае кодировка должна определяться извне.
2
2 / 1 / 1
Регистрация: 16.11.2017
Сообщений: 16
30.03.2018, 14:06  [ТС] 3
Спасибо огромное, разобрался, поменял кодировку в txt и все заработало
0
30.03.2018, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2018, 14:06
Помогаю со студенческими работами здесь

Считывание из файла русских символов
так вот, считываю из файла текст, помещаю что в listbox, что в datagrid получаются ромбики черные,...

Считывание русских символов из файла WinApi
У меня есть массив name в котором хранится имя файла в формате D:\... Этот файл с текстом на...

Split русских строк из txt файла
Доброго времени суток господа. Столкнулся с проблемой split`а русских строк из txt файла. Вот...

Чтение из файла .txt русских букв
Привет. Есть файл .txt в нем такая информация: 1 file 2 файл 3 people 4 люди ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru