从以ios :: binary模式编写的文本文件中读取此字符时遇到问题。我使用了记法unsigned char (181)
将其写入文件,但是当我尝试通过此行获取该值的十进制值时
cout << text[i] << " " << (unsigned int)text[i] << " " << (int)text[i] << endl;
我明白了..
╡ 4294967221 -75
我的所有值都超过127,这似乎正在发生。该符号是与我使用的数字相对应的正确符号,但是由于某种原因,当我尝试将其强制转换为unsigned int或int时,我得到了一个错误的数字。我需要对127以上的ascii表中的值做些特别的事情吗?
先转换为unsigned char
,再转换为int
(或unsigned int
)。显然,在您的系统上,plainchar
是带符号的,这意味着它采用了范围内的值[-128, 127]
(通常假设为8 bit char
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句