Domanda

Voglio produrre un array WCHAR_T riempito da una API di Windows in un file aperto con Fopen:

wchar_t content[256];
SomeWindowsAPI(content, 256);
FILE *file;
file=fopen( "C:\\log","a+");
fputs(content , file); //????

Tuttavia, Fputs si aspetta un array const char*. C'è qualche altra API C da scrivere su un tubo di file che si aspetta caratteri di ampia array?

È stato utile?

Soluzione

Per stampare una sequenza di terminazione null, l'ampio analogo di fputs è fputws:

int fputws(const wchar_t *restrict ws, FILE *restrict stream);

In alternativa, puoi scrivere i dati grezzi nella tua vasta stringa con fwrite:

wchar_t str[] = L"Hello World";
FILE * fp = /* ... */;

fwrite(str, sizeof(wchar_t), wcslen(str), fp);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top