2013-06-19 17 views
0

这个问题已经占用了我整整一天,我无法弄清楚它为什么这样做。我的代码:Arduino字符数组打印不同的值

char products[11][14]= { {'6','3','4','4','8','2','7','0','1','9','2','~','~'}, 
          {'5','0','6','0','1','8','5','1','6','2','3','7','0'}, 
          {'0','1','2','3','4','5','6','7','8','9','0','1','2'}, 
          {'6','7','1','8','6','0','0','1','2','3','2','0','~'}, 
          {'1','8','8','3','3','4','0','0','1','4','~','~','~'}, 
          {'7','0','5','1','0','5','2','2','1','5','1','9','~'}, 
          {'9','7','8','8','4','2','0','5','3','2','3','1','8'}, 
          {'1','2','5','0','0','2','7','4','1','3','5','~','~'}, 
          {'8','1','1','2','0','4','0','1','2','3','4','4','~'}, 
          {'5','9','4','4','5','2','5','0','0','2','3','6','9'}, 
          {'9','7','8','9','7','3','1','0','3','0','4','1','8'} 
          }; 
void setup(){ 
    Serial.begin(9600); 
    for(int i=0; i<11; i++){ 
     for(int j=0; j<14; j++) 
     Serial.print(products[i][j], DEC); 
     Serial.println("\n"); 
    } 
} 

void loop(){} 

当我运行它,而不是打印我已存储的实际值,它打印此:

54515252565055484957501261260 

534854484956534954505155480 

484950515253545556574849500 

5455495654484849505150481260 

495656515152484849521261261260 

5548534948535050495349571260 

575556565250485351505149560 

49505348485055524951531261260 

5649495048524849505152521260 

535752525350534848505154570 

575556575551494851485249560 

起初,我想这对每个人的ASCII码,但我值应该在30到39之间。那是什么,我如何得到实际值?

+1

其他人已经解释了什么被打印和为什么的细节,但就像一个小的旁边,你正在考虑的30..39范围是**十六进制**,你打印在十进制。 – microtherion

+0

是的好点! –

回答

3

您打印出整数值的十进制表示数组中的字符。

Serial.Print('6', DEC) // will print out '54' 

会打印出54,因为性格的“6”的整数值是54,如果你想打印出文字本身可以在asciitable

检查,你应该忽略DEC和使用Print没有第二个参数:

Serial.Print('6') // will print out '6' 

了解更多关于Print()的选项从the API

+0

我不知道我是如何错过的。这很晚了,我一直在复制粘贴太多。谢谢! – FloIancu

2

这很简单。 根据http://www.asciitable.com/,这些值是正确的。

如果您想从打印

char products[11][14]= { {'6','3','4','4','8','2','7','0','1','9','2','~','~'}, 
          {'5','0','6','0','1','8','5','1','6','2','3','7','0'}, 
          {'0','1','2','3','4','5','6','7','8','9','0','1','2'}, 
          {'6','7','1','8','6','0','0','1','2','3','2','0','~'}, 
          {'1','8','8','3','3','4','0','0','1','4','~','~','~'}, 
          {'7','0','5','1','0','5','2','2','1','5','1','9','~'}, 
          {'9','7','8','8','4','2','0','5','3','2','3','1','8'}, 
          {'1','2','5','0','0','2','7','4','1','3','5','~','~'}, 
          {'8','1','1','2','0','4','0','1','2','3','4','4','~'}, 
          {'5','9','4','4','5','2','5','0','0','2','3','6','9'}, 
          {'9','7','8','9','7','3','1','0','3','0','4','1','8'} 
          }; 
void setup(){ 
    Serial.begin(9600); 
    for(int i=0; i<11; i++){ 
     for(int j=0; j<14; j++){ 
     Serial.print(products[i][j]); 
     Serial.print(" "); 
     } 
     Serial.print("\n"); 
    } 
} 

void loop(){} 

打印字符删除DEC例如

Serial.print(78) gives "78" 
Serial.print(1.23456) gives "1.23" 
Serial.print('N') gives "N" 
Serial.print("Hello world.") gives "Hello world." 
Serial.print(78, BIN) gives "1001110" 
Serial.print(78, OCT) gives "116" 
Serial.print(78, DEC) gives "78" 
Serial.print(78, HEX) gives "4E" 
Serial.println(1.23456, 0) gives "1" 
Serial.println(1.23456, 2) gives "1.23" 
Serial.println(1.23456, 4) gives "1.2346" 

如需进一步信息refer to this link