Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/27: Рейтинг темы: голосов - 27, средняя оценка - 4.85
4 / 4 / 2
Регистрация: 19.08.2013
Сообщений: 26

Чтение Unicode

15.09.2013, 16:25. Показов 5824. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть файл в кодировке Unicode. Надо вывести его содержимое в другой файл и в консоль. Использую двухбайтовый тип wchar, но вместо текста выводятся закорючки, причём в выходном файле и консоли они разные.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <windows.h>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(0,"");
    wchar_t c;
    wifstream Text("formula.txt");
    if(!Text.is_open()){
        cout<<"Error";
        return 0;
    }
    wofstream Output("formula2.txt");
    if(!Output.is_open()){
        cout<<"Error";
        return 0;
    }
    while(Text>>c){
        wcout<<c;
        Output<<c;
    }
    Text.close();
    Output.close();
    system("PAUSE");
    return 0;
}
Добавлено через 22 часа 34 минуты
Никто с этим не сталкивался?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2013, 16:25
Ответы с готовыми решениями:

Чтение из файла unicode-символов
Добрый день. помогите пожалуйста с таким вопросом. Имеется файл, сохранённый с кодировкой unicode. в нём записаны символы ζϢ. ...

Чтение файла в Unicode формате
Как можно за одно обращение к потоку забрать не один байт, а сразу два? Необходимо считать все символы из текстового файла в UNICODE в...

Чтение из файла в формате Unicode
Прошу помощи, пытаюсь считать информацию из файла который в кодировке Unicode в ANSI все нормально работает #include...

24
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.02.2020, 13:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Возможно, это gcc-специфичная штука.
У меня тоже сложилось такое впечатление

Добавлено через 1 минуту
Еще для нормальной работы с windows.h я добавляю:
C++
1
#define WIN32_LEAN_AND_MEAN
Добавлено через 6 минут
И еще: для _setmode() необходимо:
C++
1
#include <io.h>
0
 Аватар для COKPOWEHEU
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
25.02.2020, 13:58
Цитата Сообщение от liv Посмотреть сообщение
#define WIN32_LEAN_AND_MEAN
Не поясните для чего оно?
Выдача первой страницы гугла говорит что-то об отключении редкоиспользуемых функций winapi. Они чем-то мешают кроме времени компиляции? Или у этого дефайна какой-то другой смысл?
Впрочем, даже если только отключает экзотику, именно сюда добавить можно.
Цитата Сообщение от liv Посмотреть сообщение
#include <io.h>
Спасибо, исправлю. Оно, конечно, и так работало, но сделать по-человечески (ага, самому смешно) никогда не помешает.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
25.02.2020, 14:20
COKPOWEHEU, сюда по всему, так и есть. Дефайн WIN32_LEAN_AND_MEAN означает, что будут отброшены большинство редко используемых функций, макросов и типов Windows.
У меня, если не указать этот дефайн начинает находить какие-то несоответствия, причем где-то в потрохах.
А без io.h не находится указанная функция. Может, так только у меня? Чего-то в супе не хватает...

Добавлено через 11 минут
И еще одно:
C++
1
setlocale(category, locale)
лишняя
Локаль нужна только для вывода однобайтовых символов 0x80-0xff
0
 Аватар для COKPOWEHEU
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
25.02.2020, 14:40
Цитата Сообщение от liv Посмотреть сообщение
Локаль нужнва только для вывода однобайтовых символов 0x80-0xff
Зачем же делать узкоспецифичную функцию, когда можно сохранить полный функционал? Не знаю, конечно, как установка utf-8 будет работать с каким-нибудь cp1251... впрочем, кому надо - допилят.
Ну и для похожести на обычную setlocale сохранить синтаксис будет нелишним.
Цитата Сообщение от liv Посмотреть сообщение
А без io.h не находится указанная функция. Может, так только у меня? Чего-то в супе не хватает...
Так я же и не спорю: если в документации говорят, что <io.h> нужен, лучше его и добавить.
Это у меня в gcc оно и так работало, а других компиляторов нет (как и желания на них тестировать) - вот и не заморачивался. Теперь исправил: https://github.com/COKPOWEHEU/... tability.h
1
129 / 1 / 1
Регистрация: 16.12.2019
Сообщений: 33
27.02.2020, 12:47
Наверное Вы правы. Я что-то совсем не выкупаю как это все это работает. Начну с основ, спасибо:-)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2020, 12:47

Чтение UNICODE символов из STDOUT процесса
У меня есть процесс (cmd.exe) создан через WINAPI функцию CreateProcess. К процессу подключено 2 переменных типа HANDLE из которых в свою...

CStdioFile не поддерживает чтение файлов в формате Unicode. Что делать?
К сожалению CStdioFile не поддерживает чтение текстовых файлов в формате Unicode. Может быть кто-нибудь видел класс осуществляющий нечто...

C++ и Unicode
Всем привет. Читая про кодовые точки в Java, мне стало интересно как с этим дела в C++. Т.е. для обычного ASCII мы используем char (1...

Unicode в c++
Нужно вывести в консоли символ: \ Просто так сделать это нельзя, решил использовать Unicode. Код символа в Unicode : \u005C Как...

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк)....


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru