设为首页 加入收藏

TOP

打印出自身的程序
2014-11-23 23:30:07 来源: 作者: 【 】 浏览:2
Tags:打印 自身 程序

简短的#include

main(){char *s="#include%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

main(){

char *s="#include%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

void main() {

char *s="//Copyright (c) LeafCore%c#include%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

main(){

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

char *s="//Copyright (c) LeafCore%c#include%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;

}运行生成的可执行文件,可生成自身的源文件。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇《从C语言实战谈编程》开场白 下一篇最长不重复子串的高效实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: