C ++将文本文件读取为二进制文件并在控制台中显示

时间:2012-01-11 00:53:18

标签: c++ windows binary console

我尝试将一个文本文件读取为二进制文件,然后在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 个答案:

答案 0 :(得分:4)

一种可能是文件包含Unicode字符,每个字符可能有多个字节。并且一些开头的角色值看起来像是BOM (byte order mark)的一部分。特别是,239,187,191(0xef,0xbb,0xbf)似乎表示一些UTF-8数据。