将字节数组转换为字符串(NXC)

时间:2011-09-10 20:30:50

标签: string bytearray nxt nxc

有没有办法在NXTscreen上显示字节数组(使用NXC)?

我试过这样:

unsigned char Data[];
string Result = ByteArrayToStr(Data[0]);
TextOut(0, 0, Result);

但它给了我一个File Error! -1

如果无法做到这一点,如何在程序中观察Data[0]的值?

2 个答案:

答案 0 :(得分:1)

如果要以十六进制格式显示字节数组,可以执行以下操作:

byte buf[];
unsigned int buf_len = ArrayLen(buf);

string szOut = "";
string szTmp = "00";

// Convert to hexadecimal string.
for(unsigned int i = 0; i < buf_len; ++i)
{
    sprintf(szTmp, "%02X", buf[i]);

    szOut += szTmp;
}

// Display on screen.
WordWrapOut(szOut,
            0, 63,
            NULL, WORD_WRAP_WRAP_BY_CHAR,
            DRAW_OPT_CLEAR_WHOLE_SCREEN);

您可以找到WordWrapOut() here


如果您只是想将其转换为ASCII:

unsigned char Data[];
string Result = ByteArrayToStr(Data);
TextOut(0, 0, Result);

如果您只想显示一个字符:

unsigned char Data[];
string Result = FlattenVar(Data[0]);
TextOut(0, 0, Result);

答案 1 :(得分:0)

试试bytebyte是NXC中的unsigned char

P.S。 BricxCC中有一个严重欠开发的调试器(我假设你在Windows上)。看here

编辑:代码编译并运行,但没有做任何事情。