| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1196 人关注过本帖
标题:[求助]用C写一段代码,输出自己的源代码!
只看楼主 加入收藏
Teamwolves
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-2
收藏
 问题点数:0 回复次数:12 
[求助]用C写一段代码,输出自己的源代码!
当程序运行的时候,将会输出一些字符,这些字符恰好是这个程序的代码本身。

请注意程序运行时将不能访问到源程序(系统已经将源代码删除)。

[此贴子已经被作者于2005-7-17 0:32:43编辑过]

搜索更多相关主题的帖子: 源代码 输出 
2005-07-17 00:28
georgezf
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2004-11-20
收藏
得分:0 
如果遇到printf函数呢?
遇到printf()函数的话,那么程序肯定先要输出函数原形printf(),然后参数里面写%s,这个%s又是printf("%s")不就无限循环了吗?

2005-07-17 10:11
georgezf
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2004-11-20
收藏
得分:0 
比如这个程序:
#include<stdio.h>
main()
{
        printf("Hello,world!");
}

如果要把的源代码输出,那么就是:
#include<stdio.h>
main()
{
       printf("#include<stdio.h>\nmain()\n{\n        printf("Hello,world!");\n}");
}

但是注意:这个时候程序的源代码已经不是之前的:

#include<stdio.h>
main()
{
        printf("Hello,world!");
}

了,而是:

#include<stdio.h>
main()
{
       printf("#include<stdio.h>\nmain()\n{\n        printf("Hello,world!");\n}");
}

所以程序输出的实际上不是源代码。又要修改,但是修改后又不是源代码了。。。。。。

2005-07-17 10:15
Teamwolves
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-2
收藏
得分:0 
可以试一试其他办法的呀!
比如调用内存....

http://ruiquan.
2005-07-17 10:29
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

我写了个,目前只想到这么做。。。 #include <stdio.h>

#define Line1 "#include <stdio.h>" #define Line2 "int main()" #define Line3 "{" #define Line4 "printf(\"Hello,world\\n\");" #define Line5 "return 0;" #define Line6 "}"

int main() { FILE *fp=fopen("MySrc.c","w"); printf("Hello,world\n"); fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n",Line1,Line2,Line3,Line4,Line5,Line6); fclose(fp); return 0; }


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-07-17 11:45
Teamwolves
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2005-5-2
收藏
得分:0 

按照题目要求,楼上的程序输出结果应该是: #include <stdio.h>

#define Line1 "#include <stdio.h>" #define Line2 "int main()" #define Line3 "{" #define Line4 "printf(\"Hello,world\\n\");" #define Line5 "return 0;" #define Line6 "}"

int main() { FILE *fp=fopen("MySrc.c","w"); printf("Hello,world\n"); fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n",Line1,Line2,Line3,Line4,Line5,Line6); fclose(fp); return 0; }


http://ruiquan.
2005-07-17 11:50
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 
用#define把程序中出现的语句全部添加一便,我这个只是简单演示一下思路。。。

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-07-17 11:52
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
干吗不把整个程序存进全局字符变量数组中呢?直接打印字符数组出来,

土冒
2005-07-17 11:58
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
或者利用文件

土冒
2005-07-17 11:58
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 
不知道牛虻有没有碰到过,我做过一个程序就是将许多在程序中需要用到的字符串存入一个全局数组,但程序运行的时候出现Stack overflow的错误,不知怎么办。。。

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-07-17 12:05
快速回复:[求助]用C写一段代码,输出自己的源代码!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015587 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved