我打開一個文本文件:std :: ifstream開頭的字符是什麼?
std::ifstream in("1.txt");
if(in.good())
{
char ch = 0;
while(!in.eof())
{
in >> ch;
std::cout << std::hex << (short)ch << " ";
}
}
而且我一開始接收三個奇怪的字符:FFEF FFBB FFBF。它是什麼?
我打開一個文本文件:std :: ifstream開頭的字符是什麼?
std::ifstream in("1.txt");
if(in.good())
{
char ch = 0;
while(!in.eof())
{
in >> ch;
std::cout << std::hex << (short)ch << " ";
}
}
而且我一開始接收三個奇怪的字符:FFEF FFBB FFBF。它是什麼?
它看起來像一個BOM標記。 BOM標記在那裏要注意你的數據是UTF-8。請注意0處理像ASCII這樣的東西。
最好在這裏小心:因爲你正在像ASCII一樣處理它,當你遇到一個奇怪的字符時可能會出錯。
有關BOM標記的更多詳細信息,請參閱https://en.wikipedia.org/wiki/Byte_order_mark。
請閱讀[爲什麼使用eof不好](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) –