2017-04-08 73 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