windows - Udskrivning af en C ++ LPCWSTR til en fil

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at udskrive en LPCWSTR-værdi til en fil, men det udskriver kun adressen, ikke værdien.


Jeg har prøvet dereferencing variablen (ved hjælp af *) for at få værdien, men det virker heller ikke.


Hvordan kan jeg udskrive værdien?


void dump(LPCWSTR text){

  ofstream myfile("C:\myfile.txt", ios::app );
  myfile << text << endl;
  myfile.close();

}


Tak på forhånd.

Bedste reference


Brug wofstream (basic\_ofstream). Årsagen til, at dette vil fungere, er at w versioner af std-strømmerne er designet til at fungere med brede karakterstreng og data. Den smalle version, du bruger, vil se en bred streng, som sandsynligvis indeholder nogle indlejrede nuller og vil tro, at det er slutningen af ​​strengen.

Andre referencer 1


wofstream vil generere en output, der også er unicode (uden en BOM). Det kan ikke være, hvad Brian ønsker.


Desværre, hvis du vil have din fil til at være 8 bit tegn, vil du gå ud af C + + strings og konvertere unicode strings til 8 bit tegn.


Du kan bruge wcstombs til at konvertere strengen til 8 bit tegn. Konverteringen sker i den aktuelle lokalitet, så sørg for at bruge setlocale for at sikre, at din konvertering sker i den korrekte lokalitet. Desværre angiver dokumentationen for setlocale, at den ikke vil arbejde til at konvertere til UTF-8: ([4] [5]