2017-04-08 2 views
0

Ich versuche, in einer breiten Datei zu lesen, und ich habe diese breite Zeichenfolge Beispiel, aber ich bin mir nicht sicher, was es breit macht. Ist es jeder 0x42, oder ist es, weil es viele von ihnen gibt? Ich muss das herausfinden, damit ich machen kann, was in meiner Datei ist.Was macht diese breite

Dies ist meine breite Zeichenfolge. Was es breit, andere als die w in wchar_t macht:

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}; 

Mir wurde gesagt, dass eine echte breite Zeichenfolge zusätzliche Bits im String füllen.

Ich las wide vs standard, aber ich bin mir immer noch nicht sicher, was dieses breite macht.

+1

Ihre Frage ist eher unklar. 'wchar_t' ist der * breite * Zeichentyp. Was meinst du mit "in einer großen Datei einlesen?" Wide vs. Narrow ist eine Eigenschaft von C++ - Zeichentypen, nicht von Dateiinhalten. – Angew

+0

Das 'w' in' wchar_t' steht für "wide", aber ich bin nicht sicher, was Ihre Frage darüber hinaus ist. – Quentin

+0

siehe meine zusätzlichen Kommentare oben. Ich bin mir nicht sicher, warum diese spezielle Saite die Kriterien für das Extrabit-Füllen für breite Saiten erfüllt. – Michele

Antwort

-1

Diese Daten sind 'breit', weil einige der Werte (alle über 0x7F) außerhalb des Bereichs von char (-128 bis 127) liegen und daher vom Compiler auf ints hochgestuft werden, was nicht möglich ist in einen char einfügen. wchar_t ist der breite char-Typ, der mehr Bits als char enthält und daher Werte außerhalb dieses Bereichs speichern kann. Die tatsächliche Anzahl der Bits in wchar_t hängt von der Plattform ab.

+0

also sagst du, dass die Zeichenfolge die Rechnung nicht für breit dann passt? Wenn ich auf Witwen wäre, welche Zahl würde als breit angesehen werden? – Michele

+1

'char' ist nicht unbedingt -128 bis 127, noch nicht einmal unbedingt unterzeichnet. Jedenfalls sind alle diese Konstanten von Anfang an "int". – chris

+0

Ich sage, dass es die Rechnung passt. Ich werde meine Antwort für Klarheit bearbeiten. – JeremiahB