3

デバッグ目的で使用している文字列の印刷に問題があります。

次のように文字列を作成します。

//checker is int 
std::stringstream buttonx; 
buttonx << "Button" << checker << "_x";

今、私はそれを自分のerror.txtファイルに印刷しようとしています


FILE * p;
p = fopen ("error.txt","w");
fprintf(p, "%s" , buttonx.str());
fclose(p);

出力は次のとおりです。

,æ0

毎回違います。何が起こっているのか、誰かが間違いを説明できることを望んでいたかどうかはわかりませんか?

4

2 に答える 2

7

fopenプレーン C であり、std::string を処理できません。次のように、文字列char*を呼び出してアクセスできるa を入力する必要があります。.c_str()

fprintf(p, "%s", buttonx.str().c_str());
于 2012-11-14T06:57:48.353 に答える
0

関数 fprintf はヌルで終了する文字列 (C 文字列) を必要とします。あなたの代わりに c_str() が必要です:

 buttonx.c_str()
于 2012-11-14T06:58:14.217 に答える