2017-04-08 71 views
0

我想读宽文件,我有这个宽字符串的例子,但我不知道是什么使它广泛。它是每个0x42,还是因为它们有很多?我需要弄清楚这一点,以便我可以在我的文件中创建一些内容。是什么让这个宽

这是我的广泛字符串。是什么使得它宽,比为wchar_t的(重量)其它:

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但我仍然不确定是什么让这一个广泛。

+1

你的问题相当不清楚。 'wchar_t'是* wide *字符类型。你是什​​么意思“阅读一个广泛的文件?”宽与窄是C++字符类型的属性,而不是文件内容的属性。 – Angew

+0

wchar_t中的'w'代表“宽”,但我不确定你的问题超出了这个范围。 – Quentin

+0

看到我上面的额外评论。我不确定为什么这个特定的字符串适合宽字符串的额外位填充条件。 – Michele

回答

-1

由于某些值(所有超过0x7F的值)超出char(-128至127)的范围,因此它们被编译器提升为ints,因此该数据为'宽'适合一个字符。 wchar_t是宽字符类型,它比char中的位数多,因此可以存储该范围之外的值。 wchar_t中的实际位数因平台而异。

+0

那么你是说这个字符串不适合广泛的账单吗?如果我在寡妇身上,那么这个数字会被认为很宽? – Michele

+1

'char'不一定是-128到127,甚至不一定需要签名。无论如何,所有这些常量从一开始就是“int”。 – chris

+0

我在说它确实符合这项法案。为了清晰起见,我会编辑我的答案。 – JeremiahB