2016-10-13 6 views
3

現在、floatを文字列として出力しようとしている、particle.io Sparkプラットフォームで作業しています。フロートを変換するために文字列ストリームを使用するいくつかのソリューションを見ました。C++ floatからstringへの変換がstringstreamで失敗しました

以下、次のように私の実装は次のとおりです。

#include <sstream> 

void loop() 
{ 
    float tempC = 21.35; 

    std::ostringstream stream; 
    stream << tempC; 
    std::string tempCString = stream.str(); 

    // why does this give me a blank string? 
    Serial.print("Temp 1: "); 
    Serial.println(tempCString.c_str()); 

    // while this outputs the float 
    Serial.print("Temp 2: "); 
    Serial.println(tempC); 

    Serial.println(tempCString.size()); 
} 

これは、次の出力が生成されます。

Temp 1: 
Temp 2: 21.35 
6 

はまた、これはコンパイルに失敗します。

​​

次のエラーで:

error: no matching function for call to 'USBSerial::println(std::string&)' 

編集:Serial.print

程度の粒子ドキュメントへのリンク

https://docs.particle.io/reference/firmware/core/#print-

+0

「シリアル」とは何ですか?あなたはArduinoにいますか? –

+0

Arduinoと同様に、私はparticle.ioスパークを使用しています。 – koverda

+0

問題を再現し、非標準部品を除外する[MCVE]を提供する必要があります。 –

答えて

0

私は答えを見つけました。これは、通常のC++のためにも当てはまるが、Cのバージョンの++粒子スパーク上で動作しているかどうかわからない、解決策は以下の通りである。

float myFloat = 6.123; 
String floatString(myFloat, 2); 

これは私がして働くことができる文字列を与えます!

関連する問題