找回密码
 欢迎注册
查看: 14921|回复: 12

[转载] 打印自身

[复制链接]
发表于 2009-4-15 17:00:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
http://wxx.cs.hit.edu.cn/?p=138
Author: Unknown (from The Jargon File)
Notes: The first several examples are variations of the standard one-liner C quines.
main(){char *c="main(){char *c=%c%s%c;printf(c,34,c,34);}";printf(c,3
4,c,34);}

Author: Joe Miller
Notes: This causes some warnings but should compile fine.
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}

Author: John Burger, David Brill, Filip Machi
main(){char q=34,n=10,*a="main(){char q=34,n=10,*a=%c%s%c;printf(a,q,a,q,n);}%c";printf(a,q,a,q,n);}

Author: Unknown
main(){char*a="main(){char*a=%c%s%c;int b='%c';  printf(a,b,a,b,b);}";int b='"';printf(a,b,a,b,b);}

Author: Dario Dariol
main(a,b){a="main(a,b){a=%c%s%c;b='%c'; printf(a,b,a,b,b);}";b='"';printf(a,b,a,b,b);}

Author: Dario Dariol
main(a){printf(a="main(a){printf(a=%c%s%c,34,a,34);}",34,a,34);}

Author: Unknown
char *p="char *p=%c%s%c;main(){printf(p,34,p,34);}"; main(){printf(p,34,p,34);}

Author: Dario Dariol
main(a){a="main(a){a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);}

Author: Unknown
char f[] = "char f[] =%c%c%s%c;%cmain() {printf(f,10,34,f,34,10,10);}%c";   
main() {printf(f,10,34,f,34,10,10);}

Author: Thad Smith
Notes: The author claims that this one is strict ANSI.
#include<stdio.h>
main(){char*c="\\\"#include<stdio.h>%cmain(){char*c=%c%c%c%.102s%cn%c
;printf(c+2,c[102],c[1],*c,*c,c,*c,c[1]);exit(0);}\n";printf(c+2,c[10
2],c[1],*c,*c,c,*c,c[1]);exit(0);}

Author: Torben Mogensen
char *a="\\\"char *a=%c%.1s%.1s%.71s%.1sn%c;main() {printf(a+2,a[1],a,a,a,a,a[1]);}\n"; main(){printf(a+2,a[1],a,a,a,a,a[1]);}

Author: Joe Miller
#define T(a) main(){printf(a,#a);}
T("#define T(a) main(){printf(a,#a);}\nT(%s)")

Author: Erkki Ruohtula (eru@tnso04.tele.nokia.fi)
#define n(v,w) v(#w"\nn("#v","#w")");}
n(main(){puts,#define n(v,w) v(#w"\nn("#v","#w")");})

Author: Paul Hsieh
#define X(Y) main(){printf("#define X(Y) %s\nX(%s)\n",#Y,#Y);}
X(main(){printf("#define X(Y) %s\nX(%s)\n",#Y,#Y);})
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-17 14:05:16 | 显示全部楼层
厉害呀。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-19 20:05:08 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-19 20:08:47 | 显示全部楼层

打印自身的C#代码

class C
{
  const string s = @"class C
{{
  const string s = @{1}{0}{1};
  static void Main()
  {{
    System.Console.WriteLine(s,s,'\u0022');
  }}
}}";
  static void Main()
  {
    System.Console.WriteLine(s,s,'\u0022');
  }
}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-19 20:15:25 | 显示全部楼层

打印自身的C#代码(单行版本)

class C{const string s=@"class C{{const string s=@{1}{0}{1};static void Main(){{System.Console.WriteLine(s,s,'\u0022');}}}}";static void Main(){System.Console.WriteLine(s,s,'\u0022');}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-24 17:37:03 | 显示全部楼层
原帖由 没——问题 于 2009-4-15 17:00 发表
http://wxx.cs.hit.edu.cn/?p=138
Author: Unknown (from The Jargon File)
Notes: The first several examples are variations of the standard one-liner C quines.
main(){char *c="main(){char *c=%c%s%c;pri ...

printf中的34的参数是什么意思?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-4-25 02:50:20 | 显示全部楼层
main(){char *a="%c";printf(a,91);}
此处a就是%c,91就是[的ascii
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-25 06:52:36 | 显示全部楼层
原帖由 没——问题 于 2009-4-25 02:50 发表
main(){char *a="%c";printf(a,91);}
此处a就是%c,91就是[的ascii

原来是ASCII码,不知道这种程序存在什么难点呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-4-25 23:39:42 | 显示全部楼层
原帖由 winxos 于 2009-4-25 06:52 发表

原来是ASCII码,不知道这种程序存在什么难点呢?

我错了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-28 19:24:28 | 显示全部楼层
没看懂啊~~
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-6-30 06:58 , Processed in 0.047015 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表