[英]Issues with declaring and writing to arrays with Arduino and C++
我第一次搞亂了Arduino板。
我有一個像這樣聲明的數組(我知道不要判斷我),它是用於存儲LCD的每個字符作為一種緩存:
char* lcd_characters[] = {"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};
然后我會嘗試寫入數組的特定插槽,就像這樣,將該字母保存到它:
new_char = String(message.charAt(i));
...等等等等等等...
lcd_characters[pos] = new_char; << error here
但它給了我這個錯誤:
error: cannot convert 'String' to 'char*' in assignment
有趣的是當我這樣做(下面)它確實給它分配了字母,但是我有一個var,它是一個單獨的字母,但不能分配它。
lcd_characters[pos] = "H";
有人可以幫幫我嗎。 謝謝。 我是C的新手,到目前為止還不錯。
基本上我想要一個字符數組然后我想用新值寫在數組位置。
為什么我正在寫入該數組位置的字符串類型,我應該能夠在那里寫一個數字或布爾值並稍后調用它。 最初聲明數組的方式有問題嗎?
編輯:
我試過了...
lcd_characters[pos] = new_char.c_str();
然而,這給了我類似的錯誤:
invalid conversion from 'const char*' to 'char'
跆拳道? 我想要做的就是說這個數組位置等於這個新值。 而已。 我已經在javascript,ruby,python(甚至php)等中完成了這一百萬次。我只想去,這個數組...... x [12]等於我在new_char中的字母!!!! 啊。
幾點評論:
你在使用C或C ++嗎? String是一個C ++類,但您正在創建一個c字符串數組( char *
)。
您正在創建一個字符串數組( char* var[]
等於char**
),但您的命名建議您需要一個字符數組。 一個c字符串基本上是一個字符數組,所以堅持使用它( char *
或char []
)。
在這種情況下,我建議你只使用C代碼:
char lcdChars[4] = {' ', ' ', ' ', ' '}; // init with spaces
lcdChars[2] = 'x'; // write x to position 3
注意:C ++中的字符串可以通過調用stringInstance.c_str()
輸出C字符串( char *
stringInstance.c_str()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.