как распечатать массив wchar_t в файл в 64-битных окнах - PullRequest
0 голосов
/ 19 февраля 2012

Я хочу вывести некоторый массив wchar_t, заполненный из некоторых окон API, в файл, открытый с помощью fopen:

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

Однако, fputs ожидает массив const char *. Существуют ли другие C api для записи в файловый канал, который ожидает символы широкого массива?

1 Ответ

1 голос
/ 19 февраля 2012

Для печати последовательности с нулевым символом в конце, широкий аналог fputs равен fputws:

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

В качестве альтернативы вы можете записать необработанные данные в широкой строке с помощью fwrite:

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

fwrite(str, sizeof(wchar_t), wcslen(str), fp);
...