Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 1 month ago.
トラ技10月号の記事(P64)で ”printf” が使えない
main.cpp で リスト2 int main() の中に lcd.printf("%+7.2fC ", t); と書くと Error: Class "KuAQM0802A" has no member "printf" in "main.cpp" となって コンパイル 出来ません。 lcd.print("Hello World") なら OKです。 どうすればよいでしょうか? (シミズ君)
Question relating to:
2 Answers
10 years, 1 month ago.
こんにちは。
KuAQM0802Aのライブラリでは、print関数のみがサポートされているようです。
printf関数のように書式付き出力を使いたい場合は、sprintfで文字列を生成してからそれをパラメータとして、print関数を使えば良いのではないでしょうか。
Thanks for your answer. Then I tried other library because using "sprintf" was a little complicated. I copied "Tetsuya Hoshino” 's library ”AQM0802A" instead of KuAQM0802A, and it was successful. But "lcd.locate(0,0) was not accepted this time. Then I changed "lcd.locate(0,0) into "lcd.home()" and now all troubles have cleared. Thank you Mr. Watari and Mr. Hoshino. (シミズ君)
posted by 02 Oct 201410 years, 1 month ago.
申し訳ありません。こちらにアップロードされているモジュールのバージョンが古く、printfが使えない状態になっています。すぐに修正致しますので、少々お待ちください。
Watarai様のおっしゃるように sprintf を使う方法でも問題ありませんが、printfが使える方が便利かと思いますので、修正致します。
10/4追記:先ほど修正いたしました。もともと手元ではprintfが使えるようになっていたのですが、その変更をPUSHするのを忘れていました。申し訳ありません。
申し訳ありません。こちらにアップロードされているモジュールのバージョンが古く、printfが使えない状態になっています。すぐに修正致しますので、少々お待ちください。
posted by Kunihiko Ohnaka 02 Oct 2014先ほど修正いたしました。もともと手元ではprintfが使えるようになっていたのですが、その変更をPUSHするのを忘れていました。
※ 他の多くのライブラリ同様、Streamクラスを継承することで printfメソッドが使えるようになっています。
posted by Kunihiko Ohnaka 04 Oct 2014KuAQM0802A の修正版を Downloadして入れ替えたところ、" KuAQM0802A inherits implicit virtual in "KuAQM0802A/KuAQM0802A.h" というWarning Message が出ますが、compileはsucceed で 正常に温度表示が出来るようになりました。 どうも有難うございました。 (シミズ君)
posted by eichi shimizu 07 Oct 2014