以下语句打印“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/