C++尝试告诉函数要使用哪个 2D 数组

C++ trying to tell a function which 2D array to use.

本文关键字:2D 数组 函数 C++      更新时间:2023-10-16

我是一个Java人,试图为我拥有的Arduino项目编写一些C++的东西。我得到的是一个LED灯矩阵,我试图在上面画字母。我已经为每个字符设置了一个 2D 数组,现在正在尝试创建一个函数,该函数将在给定位置的 LED 板上绘制正确的字符。

例如,我已经定义了,

boolean y[8][5]={
{1,0,0,0,1},
{0,1,0,1,0},
{0,1,0,1,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0}};

然后理想情况下,我希望有一个函数,该函数接受单个字符输入以及字符应在光阵列中放置位置的 x,y 位置。

但是,我找不到让函数选择合适的 2D 数组的方法。我试过如果语句,其中

if(charIn=='y'){
charMap={
{1,0,0,0,1},
{0,1,0,1,0},
{0,1,0,1,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0},
{0,0,1,0,0}};;
}

但是当我真正想使用 charMap 时,它说它还没有被创建......即使有一个包罗万象的声明来保证它的创建。

关于如何让函数根据输入字符识别需要使用哪个 2D 数组的任何想法?

你可以这样做

bool letters[24][8][5];
//24 for 24 letters

然后访问您只需要的每个字母

int letter_index = (int)charIn - 97;
int charMap[8][5] = letters[letter_index];

对于大写字母,您会这样做

int letter_index = (int)charIn - 65;
int charMap[8][5] = letters[letter_index];

OFC 您必须确保输入是否为字母表,否则这将使您越界异常。