我在使用以ios :: binary模式编写的文本文件中读取此字符时遇到问题。我使用符号unsigned char (181)
将其写入文件,但是当我尝试使用此行获取十进制值时
cout << text[i] << " " << (unsigned int)text[i] << " " << (int)text[i] << endl;
我离开了这个..
╡ 4294967221 -75
这似乎发生在我的所有值超过127.并且该符号是与我使用的数字相对应的正确符号,但出于某种原因,当我尝试将其转换为unsigned int或int时,我得到了一个错误数。我需要对ascii表中超过127的值进行特殊处理吗?
答案 0 :(得分:2)
首先转换为unsigned char
,然后转换为int
(或unsigned int
)。显然,在您的系统上,普通char
已签名,这意味着它采用[-128, 127]
范围内的值(通常假设为8位char
)。