c언어 질문입니다.

조회수 3321회

안녕하세요 이번에는 파일 입출력 관련 문제가 잇어서 질문 드립니다. 여러개의 js 파일들을 하나로 합치려고 하는데 다음과 같이 코드를 짜니 하나로 각각의 파일도 끝까지 복사가 안되고, 1~4번 js 파일만 합쳐지다 짤리는 결과가 나옵니다. 어떤게 문제 일까요 ㅠㅠ

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE * fp3 = NULL;
    int size;
    char chFileName[6] = { 0 };

    fopen_s(&fp3, "combine.js", "w");
    fclose(fp3);

    for (int i = 1; i <= 11; i++)
    {
        FILE * fp = NULL;
        FILE * fp2 = NULL;

        itoa(i, chFileName, 10);
        strcat(chFileName, ".js");

        fopen_s(&fp, "combine.js", "ab");
        fopen_s(&fp2, chFileName, "rb");

        if (fp == NULL || fp2 == NULL)
        {
            printf("file open error ! \n");
            return 0;
        }

        fseek(fp, 0, SEEK_END);
        fseek(fp2, 0, SEEK_END);

        size = ftell(fp2);

        fseek(fp2, 0, SEEK_SET);

        char * file = (char*)malloc(sizeof(char*)*size);

        fgets(file, size, fp2);
        fputs(file, fp);

        free(file);
        fclose(fp2);
        fclose(fp);

        printf("FILE[%d] complate!\n", i);
    }
}

코드 초보자라 많은 도움 부탁드리겠습니다. (__)

이제보니 JS파일에 개행문자 때문에 거기가지만 복사가 되서 그러는군요.

@_@ 개행문자만 빼는 방법이 있으려나요?

while(fgets(file, size, fp2))
{
    p = strchr(file, '\r');
    if (p)
        *p = 0;
    p = strchr(file, '\n');
    if (p)
        *p = 0;
    printf("%s\n", file);
}

fgets 부분을 이렇게 바꿔 봤는데 여전 하네요 ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)