Конкат n файлов и вывод на экран и файл - PullRequest
0 голосов
/ 04 марта 2019

Я пишу программу, которая принимает целые n и n файлов, объединяет файл и выводит его на экран и в файл «output.txt».Я написал этот код для него, но он не печатает его на экране и не записывает в файл.

#include <stdio.h>
#include <stdlib.h>
size_t file_size(FILE *f){
        fseek(f,0,SEEK_END);
        size_t size = ftell(f);
        fseek(f,0,SEEK_SET);
        return size;
}

void copy(FILE *src, FILE *out){
        unsigned char buffer[64];
        size_t size = file_size(src);
        fseek(src,0,SEEK_SET);
        while(fread(buffer,sizeof(buffer),1,src) && size > 0){
                if (size < 64){
                        fwrite(buffer, sizeof(buffer),size,out);
                        printf("%s",buffer);
                        size = 0;
                }
                else{
                        fwrite(buffer,sizeof(buffer),64,out);
                        size = size - 64;
                        printf("%s",buffer);
                }
        }
        printf("\n");
}

int main(){
        int num;
        char file[100];
        scanf("%d",&num);
        getchar();
        FILE *out;
        out = fopen("output.txt","w");
        if (out == NULL){
                exit(1);
        }
        for (int i=0;i<num;i++){
                scanf("%s",file);
                getchar();
                FILE *src;
                src = fopen(file,"rb");
                if (src == NULL){
                        exit(1);
                }
                copy(src,out);
                fwrite("\n",1,1,out);
                fclose(src);
        }
        fclose(out);
}

Можете ли вы помочь мне понять, что я делаю здесь неправильно.

...