程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 打印出自身的程序

打印出自身的程序

編輯:關於C語言

簡短的#include<stdio.h>

main(){char *s="#include<stdio.h>%cmain(){char *s=%c%s%c;printf(s,10,34,s,34);}";printf(s,10,34,s,34);}

 

參考http://hi.baidu.com/atyuwen/blog/item/318ceb9b688ea7b2c8eaf412.html#0

 

'\"'使用了斜槓

main(){char* a="main(){char* a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}中'\"'使用printf("%c",34);輸出

'\n'可以使用printf("%c",10);輸出

 

 

 

可讀性佳的#include<stdio.h>

main(){

    char *s="#include<stdio.h>%cmain(){%c%cchar *s=%c%s%c;%c%cprintf(s,10,10,9,34,s,34,10,9,10);%c}";

    printf(s,10,10,9,34,s,34,10,9,10);

}

//Copyright (c) LeafCore

#include<stdio.h>

void main() {

    char *s="//Copyright (c) LeafCore%c#include<stdio.h>%cvoid main() {%c%cchar *s=%c%s%c;%c%cprintf(s,10,10,10,9,34,s,34,10,9,10);%c}";

    printf(s,10,10,10,9,34,s,34,10,9,10);

}

What a fantasy!

可執行文件生成自身的源文件

//Copyright (c) LeafCore

#include<stdio.h>

main(){

    FILE *fp=fopen("file.c","w");

    char *s="//Copyright (c) LeafCore%c#include<stdio.h>%cmain(){%c%cFILE *fp=fopen(%cfile.c%c,%cw%c);%c%cchar *s=%c%s%c;%c%cfprintf(fp,s,10,10,10,9,34,34,34,34,10,9,34,s,34,10,9,10,9,10,9,10);%c%cfclose(fp);%c%creturn 0;%c}";

    fprintf(fp,s,10,10,10,9,34,34,34,34,10,9,34,s,34,10,9,10,9,10,9,10);

    fclose(fp);

    return 0;

}運行生成的可執行文件,可生成自身的源文件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved