Cómo imprimir la matriz WChar_T para archivar en Windows de 64 bits
Pregunta
Quiero emitir una matriz WChar_T llena de alguna API de Windows en un archivo abierto con Fopen:
wchar_t content[256];
SomeWindowsAPI(content, 256);
FILE *file;
file=fopen( "C:\\log","a+");
fputs(content , file); //????
Sin embargo, FPuts espera una matriz const Char*. ¿Hay alguna otra API C para escribir en una tubería de archivo que espera caracteres de matriz amplios?
Solución
Para imprimir una secuencia nula, el amplio análogo de fputs
es fputws
:
int fputws(const wchar_t *restrict ws, FILE *restrict stream);
Como alternativa, puede escribir los datos sin procesar en su cadena amplia con fwrite
:
wchar_t str[] = L"Hello World";
FILE * fp = /* ... */;
fwrite(str, sizeof(wchar_t), wcslen(str), fp);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow