在C语言中,可以使用文件操作函数来将两个二进制文件转换为短文件。下面是一个示例代码:
#include <stdio.h>
#define MAX_SIZE 100
int main() {
FILE *file1, *file2, *outputFile;
char file1Name[MAX_SIZE], file2Name[MAX_SIZE], outputFileName[MAX_SIZE];
unsigned char buffer[MAX_SIZE];
size_t bytesRead;
// 获取输入文件名和输出文件名
printf("请输入第一个二进制文件名:");
scanf("%s", file1Name);
printf("请输入第二个二进制文件名:");
scanf("%s", file2Name);
printf("请输入输出文件名:");
scanf("%s", outputFileName);
// 打开输入文件1
file1 = fopen(file1Name, "rb");
if (file1 == NULL) {
printf("无法打开文件 %s\n", file1Name);
return 1;
}
// 打开输入文件2
file2 = fopen(file2Name, "rb");
if (file2 == NULL) {
printf("无法打开文件 %s\n", file2Name);
fclose(file1);
return 1;
}
// 创建输出文件
outputFile = fopen(outputFileName, "wb");
if (outputFile == NULL) {
printf("无法创建文件 %s\n", outputFileName);
fclose(file1);
fclose(file2);
return 1;
}
// 从输入文件1读取数据并写入输出文件
while ((bytesRead = fread(buffer, sizeof(unsigned char), MAX_SIZE, file1)) > 0) {
fwrite(buffer, sizeof(unsigned char), bytesRead, outputFile);
}
// 从输入文件2读取数据并写入输出文件
while ((bytesRead = fread(buffer, sizeof(unsigned char), MAX_SIZE, file2)) > 0) {
fwrite(buffer, sizeof(unsigned char), bytesRead, outputFile);
}
// 关闭文件
fclose(file1);
fclose(file2);
fclose(outputFile);
printf("文件转换完成!\n");
return 0;
}
这段代码首先会要求用户输入两个二进制文件的文件名和输出文件的文件名。然后,它会打开这两个输入文件和创建输出文件。接下来,它会从输入文件1读取数据并写入输出文件,然后从输入文件2读取数据并写入输出文件。最后,关闭所有文件并输出转换完成的消息。
请注意,这只是一个简单的示例代码,没有进行错误处理和边界检查。在实际应用中,你可能需要添加更多的错误处理和边界检查来确保程序的稳定性和安全性。
希望这个答案能够帮助到你!如果你有任何其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云