Проблема. Пишу программу по отображению содержимого файла (любого формата) в бинарном виде. Создал Text area где как раз и вывожу содержимое файла. Но не отображаются символы кроме стандартного языка. Подскажите пожалуйста, что нужно подключить или изменить чтобы было полное отображение. Пример : Total commander + F3.
lv_obj_t* Text = lv_textarea_create(lv_scr_act());
lv_textarea_set_text_selection(Text, true);
lv_obj_set_size(Text, 1000, 500);
ifstream ifs(FilePath, ios::binary);
if (ifs)
{
//Получаем размер файла
ifs.seekg(0, std::ios::end);
streamsize size = ifs.tellg();
ifs.seekg(0, std::ios::beg);
//Создаем вектор для содержимого файла
vector <char> buffer(size);
//Читаем из файла
if (ifs.read(buffer.data(), size))
{
lv_textarea_add_text(Text, buffer.data());
}
else {
lv_textarea_add_text(Text, "Ups!");
}
ifs.close();
}
видишь там точки в тексте - это не точки, точнее не все из них точки, просмотрщик так отображает все непечатаемые символы, их намного больше чем видимых, ты бы почитал про кодировки текста.
Значит надо вывести только те, что виджет знает, а остальные заменить на какую-то обманку, как @flexprint выше описал.
То есть вам нужно обработать файл перед выводом на экран
Это если вы хотите такой вид, как выше.
Только это, как я уже писал, нифига не “бинарный” вид. Бинарное представление для показа файлов вообще обычно не используется, гораздо более популярно шестнадцатиричное
Именно так и надо, т.к. без const Вы “расконстантили” литерал и теперь можете случайно или намеренно испортить не только его, но и другие, совершенно посторонние литералы.
Мы такой пример недавно обсуждали. Там случайно портился литерал, казалось бы, никакого отношения к нам не имеющий и сидящий в системной библиотеке так, что мы его никогда и не видим. Сильно не вдруг-то догадаешься что произошло.
Я вывожу в более привычном для себя виде, используя таблицу ascii символов, отображая, например, 0x10 как LF, 0х13 как СR, 0x07 как BEL - так проще ориентироваться - сразу видно где CR где TAB
Вы уверены, что если TAB назвать HT, то ориентироваться буде проще, чем если оставить его 09?
ИSP-SPда,SPчитатьSPтекстыSPвSPкоторыхSP"SP"SPвместоSPпробелаSP-SPтоSPещеSPудовольствие.