Sé que no debe mezclar impresión con printf, cout y wprintf, wcout, pero tiene dificultades para encontrar una buena respuesta por qué y si es posible esquivarla. El problema es que utilizo una biblioteca externa que imprime con printf y mis propios usos wcout. Si hago un ejemplo simple, funciona bien, pero desde mi aplicación completa simplemente no imprime las instrucciones printf. Si esto es realmente una limitación, entonces habría muchas bibliotecas que no pueden funcionar junto con aplicaciones de impresión anchas. Cualquier idea sobre esto es más que bienvenida.C++ Mezclando printf con wprintf (o cout con wcout)
Actualización:
Me hierve abajo a:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <readline/readline.h>
#include <readline/history.h>
int main()
{
char *buf;
std::wcout << std::endl; /* ADDING THIS LINE MAKES PRINTF VANISH!!! */
rl_bind_key('\t',rl_abort);//disable auto-complete
while((buf = readline("my-command : "))!=NULL)
{
if (strcmp(buf,"quit")==0)
break;
std::wcout<<buf<< std::endl;
if (buf[0]!=0)
add_history(buf);
}
free(buf);
return 0;
}
así que supongo que podría ser un problema de rubor, pero todavía se ve extraño para mí, tengo que comprobar para arriba en él.
Actualización -> Trabajo en torno a:
En primer lugar, el mismo problema se plantea con wprintf. Pero he encontrado que la adición:
std::ios::sync_with_stdio(false);
realmente hizo el truco ... (nota falsa, y no lo que cabe esperar cierto ..), la única cosa que me molesta, es que no entiendo por qué y cómo averiguarlo :-(
Herví hacia abajo a lo siguiente: #include #include #include \t #include #include int principal () { char * buf; std :: wcout << std :: endl;/* AGREGAR ESTA LÍNEA HACE PRINTF VANISH !!! */ rl_bind_key ('\ t', rl_abort); // desactivar la función de autocompletar mientras ((buf = readline ("mi-comando:"!)) = NULL) { si (strcmp (buf, "salir") == 0) ruptura; std :: wcout << buf << std :: endl; if (buf [0]! = 0) add_history (buf); } gratis (buf); return 0; } –
lo siento, obviamente, mi error no se debe utilizar con fragmentos de código. –
Por qué las respuestas se centran en mezclar 'cout' y' printf', mientras que la pregunta es acerca de mezclar 'cout' y' wcout' ... – kennytm