2017-10-14 297 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相同: :字符串类)。 –

回答

相关问题