簡體   English   中英

使用Arduino和C ++聲明和寫入數組的問題

[英]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中的字母!!!! 啊。

幾點評論:

  1. 你在使用C或C ++嗎? String是一個C ++類,但您正在創建一個c字符串數組( char * )。

  2. 您正在創建一個字符串數組( 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM