how to print wchar_t array to file in 64 bit windows
Вопрос
I want to output some wchar_t array filled from some windows api into a file opened with fopen:
wchar_t content[256];
SomeWindowsAPI(content, 256);
FILE *file;
file=fopen( "C:\\log","a+");
fputs(content , file); //????
However, fputs expects a const char* array. Is there some other C api to write to a file pipe that expects wide array characters?
Решение
For printing a null-terminated sequence, the wide analogue of fputs
is fputws
:
int fputws(const wchar_t *restrict ws, FILE *restrict stream);
As an alternative, you can write the raw data in your wide string with fwrite
:
wchar_t str[] = L"Hello World";
FILE * fp = /* ... */;
fwrite(str, sizeof(wchar_t), wcslen(str), fp);
Не связан с StackOverflow