以下语句打印“A”。为什么? 65是'A'的ASCII码吗?

cout<<char(1857);

1857是否随着 Actor 转换为65?我正在使用int_type get()方法从fstream中读取字符,并获得了诸如1857的“A”,1858的“B”之类的怪异值。

这是我的代码:
int ch;
while(file) // file is fstream.
{
  ch = file.get();
   cout<<char(ch)<<":"<<ch<<" ";  /*prints A:1857 B:1858 C:1859*/
}

注意:将int转换为char会将其截断为8位,因此将1857转换为65。但是为什么get()方法返回1857而不是65?

最佳答案

1857 in binary 0111 0100 0001

Char将其截断以降低8位,即0100 0001,其二进制值为65,字符'A'

关于c++ - 1857是A的另一个字符代码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22041767/

10-11 18:06