2017-10-14 305 views
-4
float diff = 0; 
const char* str[] = {"Err: ZPROBE: ",diff}; 
LCD_ALERTMESSAGEPGM(str); 

隨着上面的代碼,我得到這個錯誤。任何人都知道如何從"Err: ZPROBE: "和(float)diff創建單個字符串?在初始化時,Arduino無法將'float'轉換爲'const char *'

exit status 1 
cannot convert 'float' to 'const char*' in initializatio 

對不起要補充的是,在環境中我使用 - 'string' : is not a member of 'std',

OK現在嘗試這種

String str = String("Err: ZPROBE: " , diff); 

,但得到這個

call of overloaded 'String(const char [14], float&)' is ambiguous 
+1

使用'snprintf'。或者更好的是,使用'std :: string'並將'c_str()'傳遞給宏。 –

+2

我很遺憾地通知你,不僅僅是Arduino不能這樣做,而是每一個C++編譯器都存在,因爲這不是有效的C++。如果你的意圖是真的寫C++代碼,那麼打開你的C++書到說明如何使用'std :: ostringstream'的章節,並閱讀它。 –

+1

對於Arduino中的字符串,你應該使用[Arduino標準的'String'類](https://www.arduino.cc/en/Reference/StringObject)(它不是*與標準C++'std相同: :字符串類)。 –

回答

相關問題