В общем такая проблема:дан двоичный файл,я из него извлекаю слово и его номер. Если сразу выводить в текстовый файл,то все выглядит адекватно. Но мне надо воспользоваться исходным классом sortedCollection. Используя метод insert в данном классе и, выводя все в текстовый файл, меняется кодировка и выдаются не те символы. Номера остаются правильными,а слова меняются. Мне кажется,что проблема в кодировке. Подскажите как поменять? Или в чем еще может быть проблема? Слова-набор символов. Вот пример одной из строк без использования класса:
+NOBL1 65479
С использованием класса:
P3Ѓ+X. 65479
Строку взял одну и ту же.
Без использования,повторюсь,выводит правильно.
Я использую собственную структуру с двумя полями. Char* и unsigned short. Полученный объект уже записываю в объект класса sortedCollection.
Как читаете? istream-ом? Тогда в переменные каких типов? И что должно быть? В std::string вполне можно хранить UTF-8 текст, с тем условием, что вы будете работать со строкой побайтово, а не посимвольно (чего нередко бывает достаточно).
char* — это просто указатель на чей-то другой отрезок памяти. И программист должен чётко осознавать его время жизни. Скорее всего, строка исчезла раньше, чем указатель. Используй автоматические строки наподобие std::string.
Кроме того, std::map будет, если я не ошибаюсь, сортировать по адресам, а не по строкам. Чтобы всё работало, надо писать свою операцию <, читай документацию, как.