Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# write()和memcpy()在字节大小方面的差异_C#_C_Data Recovery - Fatal编程技术网

C# write()和memcpy()在字节大小方面的差异

C# write()和memcpy()在字节大小方面的差异,c#,c,data-recovery,C#,C,Data Recovery,我目前正在尝试恢复图像数据,但我不想在恢复之前将其写入文本文件,而是想将其放入数据库中。。现在,我将4字节(起始集群)、2字节(头)、2字节(数据)写入一个文本文件 DWORD x = 0; WORD headerByte = 0; WORD dataByte = 0; write(jpg_info,&x,4); write(jpg_info,&headerByte,2); write(jpg_info,&dataByte,2); 打开jpg_info.txt后,我的

我目前正在尝试恢复图像数据,但我不想在恢复之前将其写入文本文件,而是想将其放入数据库中。。现在,我将4字节(起始集群)、2字节(头)、2字节(数据)写入一个文本文件

DWORD x = 0;
WORD headerByte = 0;
WORD dataByte = 0;

write(jpg_info,&x,4);
write(jpg_info,&headerByte,2);
write(jpg_info,&dataByte,2);
打开jpg_info.txt后,我的结果将是(例如): DB 21 00 00 95 05 00 00

但是,当我尝试对字符串使用memcpy()时

char xChar[8];
char headerByteChar[4];
char dataByteChar[4];

memcpy(xChar, &x, 4);
memcpy(headerByteChar, &headerByte, 2);
memcpy(dataByteChar, &dataByte, 2);
我的结果将是: DB 21 95 05

这不是我想要的。。我尝试了各种方法,但结果都不一样

由于x只使用2字节的数据,我希望剩余的2字节为00,即使它只占用2字节的数据

有没有办法这样做


对不起,我被困在这里好几个星期了

大多数C API将零字节解释为字符串终止字符。这里发生的事情是,memcpy确实将零字节复制到字符数组中,但是以后处理数组的任何操作都会在第一个零字节处停止。

这与C有什么关系?非常感谢您的回复!你知道我可以用00替换零字节吗?给您带来不便,敬请原谅!00是零字节。将字符数组写入文件的代码是什么?