2017-08-19 15 views
0

Arduinoを通して私の8x8ディスプレイで使用する数字のための簡単な "フォント"を作ろうとしています。これは単純なテストです。C++のスカラーイニシャライザエラーの括弧

#include <iostream> 
using namespace std; 

class Font{ 
    public: 
     void Number(int num){ 
      switch(num){ 
       case 0: 
        bool Font[][5] = {{{{ 0, 1, 0, 
             1, 0, 1, 
             1, 0, 1, 
             1, 0, 1, 
              0, 1, 0 }}}}; 
        break; 

       for(int y = 0; y < 5; y++){ 
        for(int x = 0; x < 3; x++){ 
         cout << Font[y][x]; 
        } 
        cout << endl; 
      } 
     } 
    } 
}; 

int main() 
{ 
    Font myFont; 
    myFont.Number(0); 

    return 0; 
} 

私はこれを実行するとしかし、私はというエラーを取得し、 "13:34:エラー:タイプのスカラー初期化子周りにカッコ 'ブール値' 0、1、0}}}};" を

+0

なぜあなたは 'case'に' break'後のforループを入れているを使用しますか?あなたの中括弧はうんざりしていますか? – Pang

答えて

2

多次元配列を初期化する方法ではありません。あなたは

bool Font[][5] = {{ 0, 1, 0 }, 
        { 1, 0, 1 }, 
        { 1, 0, 1 }, 
        { 1, 0, 1 }, 
        { 0, 1, 0 }}; 

または

bool Font[][5] = {0, 1, 0, 
        1, 0, 1, 
        1, 0, 1, 
        1, 0, 1, 
        0, 1, 0}; 
+1

また、 'case'ブロックの中にローカル変数を宣言すると、' case'はそれ自身の中カッコを必要とするか、コンパイラが不平を言う可能性があります。 –

+0

@RemyLebeau変数を初期化した場合のみです –