我知道C ++具有3种类型的char变量。
ad_read
正确吗?那么,char到底是哪一个呢?
我的问题是我想使用需要* char参数的istream :: read函数。但是,我知道我的程序要读取的值将在0到255之间。
我怎么知道如果我这样做char // with range : -127 to 127 or 0 to 255 ??
signed char // with range : 0 to 255
unsigned char // with range : -127 to 127
,将保证不会将读取的每件事设置为-127到127范围内的值?
edit:我知道我的char可以是两个范围,具体取决于我的平台/实现。正确?如果是,我如何知道我正在使用哪个平台/实现?它取决于我的IDE编译器吗?操作系统?
答案 0 :(得分:1)
如果在您的平台上对char签名,则其-128到127。
如果您平台上的char是未签名的,则其0到255
limits.h中的CHAR_MAX将告诉您您拥有哪个
这当然全部基于您拥有8个字节字符的假设。 CHAR_BIT会肯定告诉您