質問: Arduinoで入力された文字列から文字列と数値を取り出すプログラムを書いていますがうまく動きません。 ``` char mode[6]=""; double a,b,c; //str="PID 1.4 2.4 3.4" sscanf(str,"%s%lf%lf%lf",mode,&a,&b,&c); //sscanf(str,"%s %lf %lf %lf",mode,&a,&b,&c);でも試しました ``` としているのですが、modeだけ正常に読み込まれ、a,b,cは0.00になってしまいます。 色々試しているのですがうまく行きません。どのように修正すれば正しく動かせるでしょうか。
回答: 調べたところ答えが見つかり、正常に動かすことができたので回答とさせてもらいます。 ArduinoのC++には%fの変換指定子がないため、scanfなどで%fを利用することはできないということだったようです。 解決方法はdouble型として読み込みたい変数を別の変数を使って文字列として読み込んだ上でatofを使ってdouble型に変換するという手法でうまくいきました。