上网找了找很像是把文件一binary方式读入,再全部写进去同一个文件。下面是我自己想的方法

程序代码:
char i;
FILE* pic=fopen("pic.jpg", "rb");
FILE* pic2= fopen("pic2.jpg", "rb");
FILE* target = fopen("pakage.dat", "ab");
while (fread(&i, sizeof(char), 1, pic)) {
i += 2;
fwrite(&i, sizeof(char), 1, target);
}
while (fread(&i, sizeof(char), 1, pic2)) {
i += 2;
fwrite(&i, sizeof(char), 1, target);
}
但是这个方法在拆包时候遇到了点问题,无法知道文件大小来拆,下面是我已知文件大小所以才用for loop硬编码进去的

程序代码:
for (int i = 0; i < 118934; i++) {
fread(&x, sizeof(char), 1, target);
x -= 2;
fwrite(&x, sizeof(char), 1, pic);
}
for (int i = 0; i < 117097; i++) {
fread(&x, sizeof(char), 1, target);
x -= 2;
fwrite(&x, sizeof(char), 1, pic2);
}
请问还有什么更好的解决方法吗?或者如果我的思路错了请告知,感谢大佬