我必须在C中为操作系统类解决以下问题:
在命令行给出了三个文件,两个用于输入,一个用于输出。输出文件是从输入文件中获取的,如下:第一个文件的 10 个字节,第二个文件的 20 个字节,第一个文件的接下来的 10 个字节,第二个文件的接下来的 20 个字节,依此类推,直到输入文件完成的。
简单但低效的解决方案:读取和写入 10 / 20 字节组。一个高效(但不简单)的解决方案:读取和写入 5000 字节的块。
我尝试了这个简单的解决方案。但它不起作用......任何人都可以帮助我吗?
#include<stdio.h>
int main(int argc, char* argv[], char* envp[]){
if (argc != 4){
printf("%s", "Usage: c4h filename\n");
return 0;
}
int c1,c2,i;
FILE *in1;
FILE *in2;
FILE *out;
in1 = fopen(argv[1], "r");
in2 = fopen(argv[2], "r");
out = fopen(argw[3], "wb");
if (in1 == NULL){
printf("%s", "File not found!\n");
return 0;
}
if (in2 == NULL){
printf("%s", "File not found!\n");
return 0;
}
while(feof(in1)!=0 && feof(in2)!=0){
for(int i=0;i<20;i++)
if(feof(in1)!=0){
c1 = fgetc(in1);
fputc(c1,out);
}
for(int i=0;i<10;i++){
if(feof(in2)!=0){
c2 = fgetc(in2);
fputc(c2,out);
}
}
fclose(in1);
fclose(in2);
fclose(out);
return 0;
}