字符转换错了?

时间:2015-07-21 11:32:56

标签: arduino

我有这个:

 Serial.write(charBuf[0]);  //gives 5
 String data(charBuf);
 Serial.write(data);   //gives nothing (space)

首先是打印5,第二是打印。我错过了什么?是否与NULL终止的东西有关?

这是缓冲区的创建方式:

int len=1;
char charBuf[len];
for(int k=ACT_THRESH;k<ACT_THRESH+len;k++)
{
    charBuf[k-ACT_THRESH]= EEPROM.read(k);
}

1 个答案:

答案 0 :(得分:1)

int len = 1;
int str_len = 0;
char charBuf[16];
for(int k = ACT_THRESH; k < ACT_THRESH + len && str_len < sizeof(charBuf); k++)
{
    charBuf[str_len++]= EEPROM.read(k);
}
charBuf[str_len] = '\0';

但如果len = 1

,我无法获得循环的目标