我尝试将一个文本文件读取为二进制文件,然后在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();
最诚挚的问候,
答案 0 :(得分:4)
一种可能是文件包含Unicode字符,每个字符可能有多个字节。并且一些开头的角色值看起来像是BOM (byte order mark)的一部分。特别是,239,187,191(0xef,0xbb,0xbf)似乎表示一些UTF-8数据。