ログ出力のマクロを作っています。
前提条件として、
- パラメータに、任意の数値型と任意のポインタ型の値が渡される
- 数値型の数値を10進の数字列でバッファに出力
- ポインタ型はアドレス値を16進もしくは10進(どちらでもOK)でバッファに出力
- ログ出力はwritelog()関数を使う必要が有る
以下のようなコードを作成したのですが、char型の出力で問題が有ります。
C++
1#define APPLOG(value) \ 2{ \ 3 std::stringstream ss; \ 4 ss << (value); \ 5 writelog(ss.str().c_str()); \ 6} 7 8void writelog(const char* log);
intやlongなどは大丈夫なのですが、
charの数値だと文字コードとして扱われて文字として出力されてしまいます。
C++
1ss << std::dec << (value);
としても変わりませんでした。
文字では無く数字列で出力するにはどうすればいいでしょうか?
よろしくお願い致します。
環境:
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 13:46
2017/09/27 13:48