posts - 8,  comments - 4,  trackbacks - 0

什么代码可以做到——编译运行原文件可以生成次文件同时编译运行次文件也可以生成原文件。

#include<stdio.h>
const int q=0;
main(){
    FILE 
*fp=fopen("apple0.c","w");
    
char *p="#include<stdio.h>%cconst int q=%d;%cmain(){%c%cFILE *fp=fopen(%capple%d.c%c,%cw%c);%c%cchar *p=%c%s%c;%c%cfprintf(fp,p,10,q==4?0:q+1,10,10,9,34,q==4?0:q+1,34,34,34,10,9,34,p,34,10,9,10,9,10,9,10,10);%c%cfclose(fp);%c%creturn 0;%c}%c";
    fprintf(fp,p,
10,q==4?0:q+1,10,10,9,34,q==4?0:q+1,34,34,34,10,9,34,p,34,10,9,10,9,10,9,10,10);
    fclose(fp);
    
return 0;
}

编译运行4次可以做到。
line2和line4中的数从0到4再回到0。
很无聊^-^。

 

posted on 2012-03-22 13:33 leafcore 阅读(1395) 评论(1)  编辑 收藏 引用

FeedBack:
# re: 绕圈子打印自身代码的代码
2012-03-23 09:03 | tb
恩 不错的例子   回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理



常用链接

留言簿

文章分类(2)

交流与思索

让生活更轻松

最新评论

阅读排行榜