Sto provando a utilizzare std :: ostringstream per convertire un numero in una stringa (char *), ma non sembra funzionare. Ecco il codice che ho:std :: ostringstream non restituisce una stringa valida
#include <windows.h>
#include <sstream>
int main()
{
std::ostringstream out;
out << 1234;
const char *intString = out.str().c_str();
MessageBox(NULL, intString, intString, MB_OK|MB_ICONEXCLAMATION);
return 0;
}
La finestra di messaggio risultante semplicemente non contiene testo.
Questo mi porta a credere che la chiamata a out.str().c_str()
stia restituendo una stringa non valida, ma non sono sicuro. Dal momento che ho ridotto questo programma fino ad ora e sto ancora riscontrando il problema, devo aver commesso un errore imbarazzante. L'aiuto è apprezzato!
+1 per la chiara, concisa questione che include uno SSCCE. Tuttavia, ottengo il testo corretto in Windows 7 con GCC 4.7.1. – chris
@chris: il comportamento non definito non è definito. ; -] – ildjarn
@ildjarn, Ah, buona cattura. – chris