C 프로그램 자체의 소스 코드 인쇄

C 프로그램 자체의 소스 코드 인쇄

C 프로그램 자체의 소스 코드를 인쇄하는 것은 Quine 문제와 다릅니다. 여기에서는 전체 소스 코드를 인쇄하는 방식으로 C 프로그램을 수정해야 합니다. 

권장사항: 다음에서 접근 방식을 시도해 보세요. {가다} 먼저 솔루션으로 넘어가기 전에

접근하다

  1. 미리 정의된 매크로 __FILE__을 사용하여 파일 위치를 가져옵니다.
  2. 읽기 모드에서 소스 코드 파일을 열고 파일 포인터 fptr을 가져옵니다. 파일이 성공적으로 열렸는지 확인하십시오.
  3. do-while 루프와 fgetc를 사용하여 파일의 모든 내용을 읽습니다.
  4. fclose 함수를 사용하여 파일을 닫습니다.

1. FILE 매크로 방식(파일명 출력)

파일 처리 개념을 사용하여 프로그램의 소스 코드를 출력으로 인쇄할 수 있습니다. 아이디어는 소스 코드를 작성하는 동일한 파일의 내용을 표시하는 것입니다. C 프로그래밍 파일의 위치는 미리 정의된 매크로 __FILE__ 내에 포함되어 있습니다.

다음은 __FILE__을 사용하는 C 프로그램입니다.

C
      // C program to display the    // location of the file   #include         // Driver code   int     main  ()   {      // Prints location of C this C code.      printf  (  '%s'       __FILE__  );   }      


위 프로그램의 출력은 이 C 파일의 위치입니다. 

프로그램 1의 출력

구현

다음 프로그램은 __FILE__에 이 C 파일의 위치가 문자열로 포함되어 있기 때문에 이 특정 C 파일(소스 코드)의 내용을 표시합니다. 

2. 프로그램 표시

C
   // C program that prints its source code.   #include          // Driver code   int     main  (  void  )   {      // We can append this code to any C program      // such that it prints its source code.      char     c  ;         FILE     *  fp     =     fopen  (  __FILE__       'r'  );          do      {      c     =     fgetc  (  fp  );      putchar  (  c  );      }      while     (  c     !=     EOF  );          fclose  (  fp  );          return     0  ;   }   

산출:

퀴즈 만들기