怎么才能把源程序的内容保存到一个文件中??

ty120 2004-12-22 05:56:52
我写了一个程序,在运行这个程序时要把源程序的代码写进一个文件中。
这该怎么做呢??大家帮个忙!!
...全文
94 点赞 收藏 12
写回复
12 条回复
baryjim 2004年12月23日
哭,这是个深奥的话题,图灵机能否输出自己。按照图灵机的描述,它对任何程序停机是不可判定的,但是它却可以描述自己。

void main()
{
char* l,* s,* k;
*l="void main()\n{\n char* l,* s,* k;\n";
*s=" char* k=*l+"*l="+*l+";"+"*s="+*s+";"+*s;\n cout<<*k;\n}"
char* k=*l+"*l="+*l+";"+"*s="+*s+";"+*s;
cout<<*k;
}
大概是这个思路,直接输出文件的并不是楼主应该想要的,楼主的问题是TM描述问题!!
直接输出文件就没有意思了!!
回复 点赞
lxqing1981 2004年12月23日
不错
回复 点赞
ty120 2004年12月23日
上面第一个代码这样改一下也OK
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
FILE * fp;
FILE * fp1;
if((fp=fopen("ty.cpp","r"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
if((fp1=fopen("ty.txt","w"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
while(1)
{
ch=fgetc(fp);
if(feof(fp))
{
break;
}
fputc(ch,fp1);
}
fclose(fp1);
fclose(fp);
}

回复 点赞
jfhb 2004年12月22日
现在的题目你可以理解错误。

一个程序并不能在没有。C文件的前提下把自己的源代码打印出来。

其实,现在只是运行程序时把 源代码文件保存一把就是啦。
那就归结到最基础的文件操作了撒。
回复 点赞
ty120 2004年12月22日
不过我不太懂原理,能不能说明一下呢???
回复 点赞
ty120 2004年12月22日
我错了,我知道了。谢了!!!
回复 点赞
ty120 2004年12月22日
运行后只出现
Open failed!
Press any key to continue
回复 点赞
snow810211 2004年12月22日
哦,这样就好了
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
FILE * fp;
FILE * fp1;
if((fp=fopen("a.c","r"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
if((fp1=fopen("a.txt","w"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
while((ch=fgetc(fp))!=EOF)
{
//ch=fgetc(fp);
fputc(ch,fp1);
}
fclose(fp1);
fclose(fp);
}
回复 点赞
snow810211 2004年12月22日
#include <stdio.h>
#include <stdlib.h>
void main()
{
char ch;
FILE * fp;
FILE * fp1;
if((fp=fopen("a.c","r"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
if((fp1=fopen("a.txt","w"))==NULL)
{
printf("Open failed!\n");
exit(1);
}
while(!feof(fp))
{
ch=fgetc(fp);
fputc(ch,fp1);
}
fclose(fp1);
fclose(fp);
}

这样可以吗?
但是最后多出来一个"莫名其妙的字符",请高手告诉我...
回复 点赞
ty120 2004年12月22日
能举一下例吗????
回复 点赞
junnyfeng 2004年12月22日
文件重定向就行了
回复 点赞
yevv 2004年12月22日
什么源程序?? 文件操作不行吗??
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告