我試圖從我的Arduino結構數組中輸出一個隨機元素。該結構是這樣的從結構數組輸出隨機元素
struct questionStructure {
char question[7];
int answer;
};
我把我的環路的方法保存了一堆的答案,然後假設一個隨機的問題進行選擇,並在屏幕上顯示的問題。這種方法看起來像這樣
bool questionIsShown = false;
void randomQuestion()
{
int random;
struct questionStructure problems[4];
char test[7];
strcpy(test, "49 x 27");
strcpy(problems[0].question, test);
problems[0].answer = 1323;
strcpy(test, "31 x 35");
strcpy(problems[1].question, test);
problems[1].answer = 1085;
strcpy(test, "47 x 37");
strcpy(problems[2].question, test);
problems[2].answer = 1739;
strcpy(test, "46 x 15");
strcpy(problems[3].question, test);
problems[3].answer = 690;
strcpy(test, "24 x 29");
strcpy(problems[4].question, test);
problems[4].answer = 696;
if(questionIsShown==false) {
random = rand() % 4 + 0;
lcd.setCursor(0,1);
lcd.print(problems[random].question);
questionIsShown=true;
}
林不知道什麼即時通訊做錯了,但即使代替上面使用lcd.print(problems[0].question);
顯示屏顯示從結構陣列的多個問題。作爲一個例子,以上顯示屏顯示49 x 27+X31 x 35
< - 其中X是一些奇怪的外觀符號。
我到底做錯了什麼?
其一,你的'test'陣列不夠長。它至少需要8個字符才能包含終止nulchar的空間。你的'問題'成員也一樣 – WhozCraig
我不知道有一個終止nulchar。在改變'test'和'question'成員的大小之後,我確實得到了更可靠的輸出。我認爲這實際上可能是這裏的問題。 –