示例原始二进制图像文件:
ÿÃÿà ^@^PJFIF^@^A^A^@^@^A^@^A^@^@ÿÃ^@<84>^@
笔记 :
^@ = null
结果二进制图像文件:
ÿÃÿà ^PJFIF^A^A^A^AÿÃ<84>
^@ 不见了
示例代码:
char sendBuffer[17500];
char buffer[16000];
char sendBuffer2[17500];
char temp[10];
inputFile = fopen("image.jpg", "rb");
fseek(inputFile , 0, SEEK_SET);
fread(buffer, fileSize, 1, inputFile );
for (j = 0; j < fileSize; ++j)
{
sprintf(sendBuffer, "%c", ((char *)buffer)[j]);
if (((char *)buffer)[j] == '\x00')
{
sprintf(temp, "%c", buffer[j]);
strcat(sendBuffer2, temp);
}
else
{
strcat(sendBuffer2, sendBuffer);
}
二进制空值可以存储在 char 中吗?
我已经尝试过使用上面的代码,但是二进制 null 消失了。如何在 char 中保存二进制 null ?还是有其他类型的数据可以保存?我想用 udp 套接字发送像 jpg 这样的二进制文件。