私はこのようなことをしたいと思います:
writeLog(printf("This is the error: %s", error));
だから私はフォーマットされた文字列を返す関数を探しています。
そのような関数が存在しない場合は、少し異なるアプローチを検討してください: writeLog
printf のようにします。つまり、文字列と可変数の引数を取ります。次に、メッセージを内部的にフォーマットします。これにより、メモリ管理の問題が解決され、 の既存の使用法が損なわれることはありませんwriteLog
。
これが可能であることがわかった場合は、次の行に沿って何かを使用できます。
void writeLog(const char* format, ...)
{
char msg[100];
va_list args;
va_start(args, format);
vsnprintf(msg, sizeof(msg), format, args); // do check return value
va_end(args);
// write msg to the log
}
標準ライブラリにはそのような関数はなく、標準ライブラリにもそのような関数はありません。
必要な場合は、自分で作成できます。これがあなたが考える必要があることです: