alexey_sigida
@alexey_sigida

Странная кодировка в файле,с++?

В общем такая проблема:дан двоичный файл,я из него извлекаю слово и его номер. Если сразу выводить в текстовый файл,то все выглядит адекватно. Но мне надо воспользоваться исходным классом sortedCollection. Используя метод insert в данном классе и, выводя все в текстовый файл, меняется кодировка и выдаются не те символы. Номера остаются правильными,а слова меняются. Мне кажется,что проблема в кодировке. Подскажите как поменять? Или в чем еще может быть проблема? Слова-набор символов. Вот пример одной из строк без использования класса:
+NOBL1 65479
С использованием класса:
P3Ѓ+X. 65479

Строку взял одну и ту же.
Без использования,повторюсь,выводит правильно.
Я использую собственную структуру с двумя полями. Char* и unsigned short. Полученный объект уже записываю в объект класса sortedCollection.
  • Вопрос задан
  • 343 просмотра
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Если исходный файл в каком нить UTF - то надо использовать wchar. В char можно только ASCII запихнуть.
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Причина у тебя другая.

char* — это просто указатель на чей-то другой отрезок памяти. И программист должен чётко осознавать его время жизни. Скорее всего, строка исчезла раньше, чем указатель. Используй автоматические строки наподобие std::string.

Кроме того, std::map будет, если я не ошибаюсь, сортировать по адресам, а не по строкам. Чтобы всё работало, надо писать свою операцию <, читай документацию, как.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы