옛날에 어느 책에서 봤는데 자기 자신을 출력하는 코드가 있었다.
내 기억으로는 상당히 복잡했었는데
인터넷에서 잠깐 검색해본 결과 별거 없었다.ㅡㅡ;;
콰인(quine) 라고 하는 사람의 이름을 따서 지은것으로..
여기 코드에서 중요한점은 단지 하나....
따옴표나 개행문자는 아스키 코드로 나타내야 한다는 점..
#include <stdio.h>
char S[] = "#include <stdio.h>%cchar S[] = %c%s%c;%cint main() { printf(S, 10, 34, S, 34, 10); return 0; }";
int main(){ printf(S, 10, 34, S, 34, 10); return 0; }
char S[] = "#include <stdio.h>%cchar S[] = %c%s%c;%cint main() { printf(S, 10, 34, S, 34, 10); return 0; }";
int main(){ printf(S, 10, 34, S, 34, 10); return 0; }
여기서 10은 아스키 코드로 LF 즉 New Line(개행문자)를 의미
35는 따옴표(") 를 의미.