C ++ Чтение текстового файла в двоичном виде и отображение его в консоли - PullRequest
2 голосов
/ 11 января 2012

Я пытаюсь прочитать один текстовый файл в двоичном виде и затем отобразить его в console-app.У меня следующий результат: http://pastebin.com/gubYpAVZ

Я спрашиваю: «Почему у меня есть такие символы, которых нет в текстовом файле?», если я открою его в блокноте - увижу только "Hello World!"и не более ... Какие еще символы ???

Вот код:

ifstream in("C:\\dev\\1.txt", ios::in | ios::binary);    
list<int> mylist1;
list<int>::iterator it;


while(!in.eof())
{
    mylist1.push_back(in.get());
};

for(it = mylist1.begin(); it != mylist1.end(); it++)
{
    cout << *it << " -> " << (char)*it << endl;
};


in.close();

С наилучшими пожеланиями,

1 Ответ

4 голосов
/ 11 января 2012

Возможно, файл содержит символы Unicode, которые могут содержать несколько байтов на символ.И некоторые из этих значений символов в начале выглядят так, как будто они являются частью BOM (метка порядка байтов) .В частности, 239, 187, 191 (0xef, 0xbb, 0xbf), похоже, указывают на некоторые данные UTF-8.

...