Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将int从int[]强制转换为const char*_C++_Arduino - Fatal编程技术网

C++ 如何将int从int[]强制转换为const char*

C++ 如何将int从int[]强制转换为const char*,c++,arduino,C++,Arduino,喜欢这个话题。。。。比如说 int[10] msg; msg[0] = 1; msg[1] = 2; const char* a = (const char*)msg[0]; const char* b = (const char*)msg[1]; 当我使用printf进行测试时,似乎没有任何价值 我打算这样使用它 char test[20]; strcpy(test, a); strcat(test, ","); strcat(test, b); strcat(test, "

喜欢这个话题。。。。比如说

int[10] msg;

msg[0] = 1;
msg[1] = 2;

const char* a = (const char*)msg[0];      
const char* b = (const char*)msg[1];
当我使用printf进行测试时,似乎没有任何价值

我打算这样使用它

char test[20];
strcpy(test, a);
strcat(test, ",");
strcat(test, b);
strcat(test, "\0");
mclient.publish("topic1/sensorAck",test);

结果显示只有逗号

strcpy和strcat在到达源字符串中的“\0”字符时停止。由于int 1实际上是4个字节(0,0,0,1),它将在第一个字节停止,因为它是零'\0',永远不会到达'1'值字节。

以下是将整数转换为C字符串的C代码

int i = 1;
char text[12];
sprintf(text, "%d", i);

小于32的代码是控制代码,0x1即*a的值不可打印。您正在强制转换为const char*,但对其执行的操作是错误的。1和2不是可打印的ASCII字符,您还需要了解系统的尾数。你想把一个整数转换成一个字符串吗?用
itoa
或其他函数把
int
转换成
char*
。你能给我解释一下吗?先说明一下你想做什么吗?这取决于系统的尾端。它可能先达到1。结果是这个“ê”而不是“1”