본문 바로가기
프로그램/C언어 1000제

C언어 116제] C언어 콘서트 CHAPTER 12 Programming 8 파일 합치기 p490

by 건티 2022. 2. 1.
728x90

출처 : 반크_세계유산 고인돌

 

참고풀이]

//Dev-C++ 5.11로 작업함.

//읽어올 파일들은 프로그램이 저장될 곳에 같이 있어야 합니다.
#include <stdio.h>
#include <stdlib.h> //exit()
#include <string.h> //strlen(), strcmp()

int main(void)
{
   FILE *fp1, *fp2, *fp3;
   char file1[100], file2[100], file3[100];
   char StrLine1[255],StrLine3[255];
   int c;
   int chk; //파일의 끝여부 파악 변수 

   printf("첫번째 파일 이름 : ");
   scanf("%s", file1);

   printf("두번째 파일 이름 : ");
   scanf("%s", file2);

   printf("합칠  파일  이름 : ");
   scanf("%s", file3);

   // 첫 번째 파일을 읽기 모드로 연다.
   if ((fp1 = fopen(file1, "r")) == NULL)
   {
      fprintf(stderr, "첫번째 파일 %s을 열 수 없습니다.\n", file1);
      exit(1);
   }

   // 두 번째 파일을 읽기 모드로 연다.
   if ((fp2 = fopen(file2, "r")) == NULL)
   {
      fprintf(stderr, "두번째 파일 %s을 열 수 없습니다.\n", file2);
      exit(1);
   }

   // 세 번째 파일을 쓰기 모드로 연다.
   if ((fp3 = fopen(file3, "w")) == NULL)
   {
      fprintf(stderr, "합칠 파일 %s을 열 수 없습니다.\n", file3);
      exit(1);
   }

   //fp1을 합칠파일에 저장한다 
   c=0;
   while((chk=fgets(StrLine1,sizeof(StrLine1),fp1)) != NULL) 
   {
      if(c) strcat(StrLine3,StrLine1);
      else
      {
         c=1;
         strcpy(StrLine3,StrLine1);
      }
      fputs(StrLine3,fp3);
   }

 

   //fp2을 합칠파일에 저장한다 
   while((chk=fgets(StrLine1,sizeof(StrLine1),fp2)) != NULL) 
   {
      strcpy(StrLine3,StrLine1);
      fputs(StrLine3,fp3);
   }

   fclose(fp1);
   fclose(fp2);

   return 0;
}

 

참고풀이 결과]

 

읽어올 파일1)

a.txt
0.00MB

 

읽어올 파일2)

b.txt
0.00MB

 

 

 

 

대한민국의 아름다운 영토, 독도의 겨울

 

반응형

댓글