C 프로그램 자체의 소스 코드를 인쇄하는 것은 Quine 문제와 다릅니다. 여기에서는 전체 소스 코드를 인쇄하는 방식으로 C 프로그램을 수정해야 합니다.
권장사항: 다음에서 접근 방식을 시도해 보세요. {가다} 먼저 솔루션으로 넘어가기 전에
접근하다
- 미리 정의된 매크로 __FILE__을 사용하여 파일 위치를 가져옵니다.
- 읽기 모드에서 소스 코드 파일을 열고 파일 포인터 fptr을 가져옵니다. 파일이 성공적으로 열렸는지 확인하십시오.
- do-while 루프와 fgetc를 사용하여 파일의 모든 내용을 읽습니다.
- 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 파일의 위치입니다.

구현
다음 프로그램은 __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; }
산출:
퀴즈 만들기