std :: ostringstreamを使用して数字を文字列(char *)に変換しようとしていますが、動作していないようです。ここに私が持っているコードは次のとおりです。std :: ostringstreamが有効な文字列を返さない
#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;
}
結果のメッセージボックスには、単にテキストがありません。
これは、out.str().c_str()
への呼び出しが無効な文字列を返すと考えていますが、わかりません。これまでにこのプログラムを修正して以来、まだ問題を抱えているので、私は恥ずかしいほど単純な間違いをしたに違いありません。ヘルプは高く評価されています!
+1。私はGCC 4.7.1でWindows 7で適切なテキストを取得します。 – chris
@chris:未定義の動作は未定義です。 ; - ] – ildjarn
@ildjarn、ああ、いいキャッチ。 – chris