[合集]谁知道怎么用c编一个输出自身的程序

[复制链接]
查看11 | 回复0 | 2021-1-29 05:17:05 | 显示全部楼层 |阅读模式
───────────────────────────────────────
作者woshialex(alex),信区:AlgoDesign
标题谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月11日21:00:46星期六),站内信件
───────────────────────────────────────
就是说编一个程序,而运行他时就把自己完整的输出来(c原代码)。能半到吗?
───────────────────────────────────────
作者yanchao(雁潮),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月12日00:47:00星期天),转信
───────────────────────────────────────
可以下面是一个程序,不是我写的,呵呵。也没太看懂,高手说说什么意思么
//自己打印自己的程序#includestdio.hmain(){char*p=#includestdio.h%cmain(){char*p=%c%s%c;printf(p,10,34,p,34,10);}%c;printf(p,10,34,p,34,10);}
woshialex (alex) 在 ta 的帖子中提到:就是说编一个程序,而运行他时就把自己完整的输出来(c原代码)。能半到吗?
───────────────────────────────────────
作者tianlynn(lp走了...),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月12日01:32:38星期天),转信
───────────────────────────────────────
这个有好多吧woshialex (alex) 在 ta 的帖子中提到:就是说编一个程序,而运行他时就把自己完整的输出来(c原代码)。能半到吗?
───────────────────────────────────────
作者woshialex(alex),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月12日19:05:50星期天),站内信件
───────────────────────────────────────
请问printf()的参数是什么意思?
───────────────────────────────────────
作者woshialex(alex),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月12日19:55:07星期天),站内信件
───────────────────────────────────────
我试了一下,果然可以,实在太好了。可是我不太看得懂,请哪位高手指点一下,谢谢。为什么他不是简单的输出字符串呢?还有10,34这些数字干什么用的?%c又是用于干什么的?谢谢答复
───────────────────────────────────────
作者SmallX(182/57/12),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月13日20:23:57星期一),转信
───────────────────────────────────────
你能这么些吗?printf(includestdio.hvoidmain(){...});那些数字就是干这个用的,关键不是那些数字,而是那个%swoshialex (alex) 在 ta 的帖子中提到:我试了一下,果然可以,实在太好了。可是我不太看得懂,请哪位高手指点一下,谢谢。为什么他不是简单的输出字符串呢?还有10,34这些数字干什么用的?%c又是用于干什么的?谢谢答复
───────────────────────────────────────
作者kicc(一定要过六级),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月15日09:53:17星期三),转信
───────────────────────────────────────
贴个我写的
#includeiostream.h
char*save=intmain(){XYcoutZ#includeiostream.hUnUnchar*save=UZZ;XYcoutsaveZUZ;UnUnZ;XYfor(inti=0;save!=0;i++)XYYif(save==88)cout'Un';XYYelseif(save==89)cout'Ut';XYYelseif(save==90)cout'UZ';XYYelseif(save==85)cout'UU';XYYelsecoutsave;XYreturn0;X}X;
intmain(){cout#includeiostream.h\n\nchar*save=\;coutsave\;\n\n;for(inti=0;save!=0;i++)if(save==88)cout'\n';elseif(save==89)cout'\t';elseif(save==90)cout'\';elseif(save==85)cout'\\';elsecoutsave;return0;}woshialex (alex) 在 ta 的帖子中提到:就是说编一个程序,而运行他时就把自己完整的输出来(c原代码)。能半到吗?
───────────────────────────────────────
作者huayuechao(地狱天使),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月16日14:13:41星期四),站内信件
───────────────────────────────────────
你们写的都很简单啊,就定义了一个字符串,然后把它的值变成源程序,对于小的程序,这是足够的,不过对于大的程序,恐怕。。。工作量就太大了,我想C语言应该有这个功能,只是我们没有发现
───────────────────────────────────────
作者kicc(一定要过6级和出线),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月16日15:45:06星期四),转信
───────────────────────────────────────
从理论计算机的角度看图灵机模型就有这个能力,自然c语言可以。其实打印自身只是递归定理的一个简单应用huayuechao (地狱天使) 在 ta 的帖子中提到:你们写的都很简单啊,就定义了一个字符串,然后把它的值变成源程序,对于小的程序,这是足够的,不过对于大的程序,恐怕。。。工作量就太大了,我想C语言应该有这个功能,只是我们没有发现
───────────────────────────────────────
作者conwood(untitled),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月16日16:39:53星期四),转信
───────────────────────────────────────
读.c文件然后输出。。。是不是不太好。。woshialex (alex) 在 ta 的帖子中提到:就是说编一个程序,而运行他时就把自己完整的输出来(c原代码)。能半到吗?
───────────────────────────────────────
作者german(小云儿|coding...),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月16日16:56:03星期四),转信
───────────────────────────────────────
这是最基本的方法,但是问题在于生成的exe文件已经独立于c文件了只有当c文件存在时才能那么输出
conwood (untitled) 在 ta 的帖子中提到:读.c文件然后输出。。。是不是不太好。。
───────────────────────────────────────
作者wangzy(风之灵),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月18日11:37:47星期六),站内信件
───────────────────────────────────────
拜托不要用那么简单的程序骗小孩,哪有那样输出源代码的?如果这样可以的话,大家只要记住:先把程序编出来,然后copy一下,转化成printf可输出的语句就可以了!
学c时没有研究这个东西,不过在vc中可以把源代码作为资源编入exe文件就可以了。
german (小云儿|coding...) 在 ta 的帖子中提到:这是最基本的方法,但是问题在于生成的exe文件已经独立于c文件了只有当c文件存在时才能那么输出
───────────────────────────────────────
作者SmallX(182/57/12),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月18日15:27:28星期六),转信
───────────────────────────────────────
不是吧,什么叫C语言有这么个功能?huayuechao (地狱天使) 在 ta 的帖子中提到:你们写的都很简单啊,就定义了一个字符串,然后把它的值变成源程序,对于小的程序,这是足够的,不过对于大的程序,恐怕。。。工作量就太大了,我想C语言应该有这个功能,只是我们没有发现
───────────────────────────────────────
作者huayuechao(地狱天使),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月19日14:16:16星期天),站内信件
───────────────────────────────────────
确实,这些所谓的输出自身的程序都是用递归亚做的,如果输出自身的话,那么,输出函数里的字符串也是源程序的一部分了,如果是这样,恐怕就递归的没完没了,呵呵至于C语言到底有没有输出自身的功能,我的确不知道,呵呵,
───────────────────────────────────────
作者german(小云儿|努力工作中),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月19日14:25:34星期天),转信
───────────────────────────────────────
呵呵,错了,不是递归
huayuechao (地狱天使) 在 ta 的帖子中提到:确实,这些所谓的输出自身的程序都是用递归亚做的,如果输出自身的话,那么,输出函数里的字符串也是源程序的一部分了,如果是这样,恐怕就递归的没完没了,呵呵至于C语言到底有没有输出自身的功能,我的确不知道,呵呵,
───────────────────────────────────────
作者ScottMeyer(ScottMeyer),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月20日13:51:17星期一),站内信件
───────────────────────────────────────
voidmain(){char*p=#includestdio.h%c voidmain(){char*p=%c%s%c;printf(p,10,34,p,34,10);}%c;printf(p,10,34,p,34,10);}''==10''==48
───────────────────────────────────────
作者Symbol(不預則廢*除懼去戾*戒!),信区:AlgoDesign
标题Re:谁知道怎么用c编一个输出自身的程序?
时间北大未名站(2003年10月20日14:28:06星期一),转信
───────────────────────────────────────
yanchao (雁潮) 在 ta 的帖子中提到:可以下面是一个程序,不是我写的,呵呵。也没太看懂,高手说说什么意思么//自己打印自己的程序#includestdio.hmain(){char*p=#includestdio.h%cmain(){char*p=%c%s%c;printf(p,10,34,p,34,10);}%c;printf(p,10,34,p,34,10);}字符串p基本上就是这个程序的源代码,只缺少几个特殊字符.
#includestdio.h换行
main(){char*p=#includestdio.h%cmain(){char*p=%c%s%c;printf(p,10,34,p,34,10);}%c;printf(p,10,34,p,34,10);}换行
printf(p,10,34,p,34,10)中第一个p自然很明显,第二个p是其中的输出参数,2个34是引号,2个10是换行,作为%c进行输出.不能写在p中,否则会出问题.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行