我正在尝试读取一个宽文件,我有这个广泛的字符串示例,但我不确定是什么使它变宽。它是每个0x42,还是因为它们中有很多?我需要弄清楚这一点,以便我可以在我的文件中做出什么。
这是我的宽字符串。除了wchar_t中的w之外,是什么让它变宽:
wchar_t nm[] = {0x42, 0x65, 0x6E, 0x6A, 0x61, 0x6D, 0xED, 0x6E, 0x20, 0x70, 0x69, 0x64, 0x69, 0xF3, 0x20, 0x75, 0x6E, 0x61, 0x20, 0x62, 0x65, 0x62, 0x69, 0x64, 0x61, 0x20, 0x64, 0x65, 0x20, 0x6B, 0x69, 0x77, 0x69, 0x20, 0x79, 0x20, 0x66, 0x72, 0x65, 0x73, 0x61, 0x3B, 0x20, 0x4E, 0x6F, 0xE9, 0x2C, 0x20, 0x73, 0x69, 0x6E, 0x20, 0x76, 0x65, 0x72, 0x67, 0xFC, 0x65, 0x6E, 0x7A, 0x61, 0x2C, 0x20, 0x6C, 0x61, 0x20, 0x6D, 0xE1, 0x73, 0x20, 0x65, 0x78, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x6D, 0x70, 0x61, 0xF1, 0x61, 0x20, 0x64, 0x65, 0x6C, 0x20, 0x6D, 0x65, 0x6E, 0xFA, 0x2E, 0x00};
有人告诉我,一个真正的宽字符串将填充字符串中的额外位。
我正在阅读wide vs standard,但我仍然不确定是什么让这个广泛。
答案 0 :(得分:-1)
这个数据是“宽”的,因为有些值(所有超过0x7F的值)超出了char(-128到127)的范围,因此它们被编译器提升为ints
,它不适合char。 wchar_t是宽字符类型,其中包含比char更多的位,因此可以存储该范围之外的值。 wchar_t
中的实际位数因平台而异。