gpt4 book ai didi

c++ - Arduino C++ 字符数组为空,元素已填充

转载 作者:行者123 更新时间:2023-11-30 02:04:36 24 4
gpt4 key购买 nike

我正在尝试将一个字符数组打印到串行。数组本身充满了字符,但是当我打印整个数组——而不仅仅是它的元素——打印的字符串是空的。

#define MAX_PAYLOAD_SIZE 80
class CmdBuffer {
...
private:
char buffer[MAX_PAYLOAD_SIZE+1];
int bufferpointer;
...
};

//In cpp File
String CmdBuffer::readCommand(char data) {
buffer[++bufferpointer]=data;
if(data != CMD_EOF) {
return NULL;
}
buffer[++bufferpointer]='\0';
...
for(int i=0; i<bufferpointer; i++) {
Serial.print(buffer[i]);
}
Serial.println("\n-------");
Serial.println(buffer);
Serial.println("END");
...
}

如果输入字符是 abcdefg 那么输出看起来像

abcdefg
-------

END

那么为什么可以打印元素,而不能打印整个数组呢?

最佳答案

我怀疑这是因为你没有分配第一个字符:

buffer[++bufferpointer]=data;

由于预递增,您错过了第一个字符。它可能包含一个空值,因此它会在那里终止您的字符串。要修复它,请使用后增量:

buffer[bufferpointer++]=data;

关于c++ - Arduino C++ 字符数组为空,元素已填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10418237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com