c语言多个文件合成一个,C语言编写读取3个二进制文件合成一个

#includeint main(int argc, char*argv[])

{

if (argc != 4)

return -1;

#define N 3

FILE *in1, *in2, *in3;

if ((in1 = fopen(argv[1], "rb")) != NULL)

if ((in2 = fopen(argv[2], "rb")) != NULL)

if ((in3 = fopen(argv[3], "rb")) != NULL)

printf("Open files OK.\n");

else

fclose(in2), fclose(in1);

else

fclose(in1);

for (int i = 0; i < 3; i++) { // 3 output files

char buf[N][3], fname[3];

sprintf(fname, "%d", i);

FILE *out = fopen(fname, "wb");

fread(buf[0], N, 1, in1); // omit return value

fread(buf[1], N, 1, in2);

fread(buf[2], N, 1, in3);

fwrite(buf, N*3, 1, out);

fclose(out);

}

return 0;

}

[08:03:26@~/c-cpp]$ gcc a.c --std=c99

[08:03:33@~/c-cpp]$ ls -l

总用量 24

-rw-r--r-- 1 jgx jgx 674 2009-06-20 08:02 a.c

-rwxr-xr-x 1 jgx jgx 9222 2009-06-20 08:03 a.out

-rw-r--r-- 1 jgx jgx 1147 2009-06-18 00:30 dbf.cpp

-rw-r--r-- 1 jgx jgx 641 2009-06-17 23:44 dbf.o

[08:04:28@~/c-cpp]$ ./a.out a.c a.out dbf.o

Open files OK.

[08:04:59@~/c-cpp]$ ls -l

总用量 36

-rw-r--r-- 1 jgx jgx 9 2009-06-20 08:04 0

-rw-r--r-- 1 jgx jgx 9 2009-06-20 08:04 1

-rw-r--r-- 1 jgx jgx 9 2009-06-20 08:04 2

-rw-r--r-- 1 jgx jgx 674 2009-06-20 08:02 a.c

-rwxr-xr-x 1 jgx jgx 9222 2009-06-20 08:03 a.out

-rw-r--r-- 1 jgx jgx 1147 2009-06-18 00:30 dbf.cpp

-rw-r--r-- 1 jgx jgx 641 2009-06-17 23:44 dbf.o

[08:05:03@~/c-cpp]$

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值