打印自身文件
2007-12-04 22:07
218 查看
昨天做了个打印自身文件的程序,这个程序完成用了20多分钟,今天突然想到一个更简单的方法。
第一个:
#include<iostream>
#include<string>
using namespace std;
char *buff[100];
char conv[200];
int flag=0;
void p1(char *str)
.{
buff[flag++]=str;
cout<<str<<endl;
}
char *convert(char *t)
{
char *out=conv;
int j=0;
for(unsigned i=0;i<strlen(t);i++)
if(t[i]=='"')
...{
out[j]='/';
out[j+1]='"';
j+=2;
}
else if(t[i]=='/')
...{
out[j]='/';
out[j+1]='/';
j+=2;
}
else
...{
out[j]=t[i];
j++;
}
out[j]=0;
return conv;
}
void p2()
...{
for(int i=0;i<flag;i++)
cout<<" p1(""<<convert(buff[i])<<"");"<<endl;
cout<<" p2();"<<endl;
cout<<"}"<<endl;
}
void main()
...{
p1("#include<iostream>");
p1("#include<string>");
p1("using namespace std;");
p1("");
p1("char *buff[100];");
p1("char conv[200];");
p1("int flag=0;");
p1("");
p1("void p1(char *str)");
p1("{");
p1(" buff[flag++]=str;");
p1(" cout<<str<<endl;");
p1("}");
p1("char *convert(char *t)");
p1("{");
p1(" char *out=conv;");
p1(" int j=0;");
p1(" for(unsigned i=0;i<strlen(t);i++)");
p1(" if(t[i]=='/"')");
p1(" {");
p1(" out[j]='//';");
p1(" out[j+1]='/"';");
p1(" j+=2;");
p1(" }");
p1(" else if(t[i]=='//')");
p1(" {");
p1(" out[j]='//';");
p1(" out[j+1]='//';");
p1(" j+=2;");
p1(" }");
p1(" {");
p1(" out[j]=t[i];");
p1(" j++;");
p1(" }");
p1(" out[j]=0;");
p1(" return conv;");
p1("}");
p1("void p2()");
p1("{");
p1(" for(int i=0;i<flag;i++)");
p1(" cout<<"p1(/""<<convert(buff[i])<<"/");"<<endl;");
p1(" cout<<" p2();"<<endl;");
p1(" cout<<"}"<<endl;");
p1("}");
p1("");
p1("void main()");
p1("{");
p2();
}
第二个
#include<iostream>
void main()
.{
system("type 1.cpp");
}
该文件保存为1.cpp
第一个:
#include<iostream>
#include<string>
using namespace std;
char *buff[100];
char conv[200];
int flag=0;
void p1(char *str)
.{
buff[flag++]=str;
cout<<str<<endl;
}
char *convert(char *t)
{
char *out=conv;
int j=0;
for(unsigned i=0;i<strlen(t);i++)
if(t[i]=='"')
...{
out[j]='/';
out[j+1]='"';
j+=2;
}
else if(t[i]=='/')
...{
out[j]='/';
out[j+1]='/';
j+=2;
}
else
...{
out[j]=t[i];
j++;
}
out[j]=0;
return conv;
}
void p2()
...{
for(int i=0;i<flag;i++)
cout<<" p1(""<<convert(buff[i])<<"");"<<endl;
cout<<" p2();"<<endl;
cout<<"}"<<endl;
}
void main()
...{
p1("#include<iostream>");
p1("#include<string>");
p1("using namespace std;");
p1("");
p1("char *buff[100];");
p1("char conv[200];");
p1("int flag=0;");
p1("");
p1("void p1(char *str)");
p1("{");
p1(" buff[flag++]=str;");
p1(" cout<<str<<endl;");
p1("}");
p1("char *convert(char *t)");
p1("{");
p1(" char *out=conv;");
p1(" int j=0;");
p1(" for(unsigned i=0;i<strlen(t);i++)");
p1(" if(t[i]=='/"')");
p1(" {");
p1(" out[j]='//';");
p1(" out[j+1]='/"';");
p1(" j+=2;");
p1(" }");
p1(" else if(t[i]=='//')");
p1(" {");
p1(" out[j]='//';");
p1(" out[j+1]='//';");
p1(" j+=2;");
p1(" }");
p1(" {");
p1(" out[j]=t[i];");
p1(" j++;");
p1(" }");
p1(" out[j]=0;");
p1(" return conv;");
p1("}");
p1("void p2()");
p1("{");
p1(" for(int i=0;i<flag;i++)");
p1(" cout<<"p1(/""<<convert(buff[i])<<"/");"<<endl;");
p1(" cout<<" p2();"<<endl;");
p1(" cout<<"}"<<endl;");
p1("}");
p1("");
p1("void main()");
p1("{");
p2();
}
第二个
#include<iostream>
void main()
.{
system("type 1.cpp");
}
该文件保存为1.cpp
相关文章推荐
- JFFS2文件系统的异常打印信息记录
- 如何把jvm垃圾回收信息打印到文件
- Django网站中文件下载的实现和网页部分打印的实现。
- 打印出自身的程序
- unity打印日志到文件
- [转载] 启用和禁用 Reporting Services 的客户端打印和导出文件格式
- 在Android.mk文件中输出打印消息
- log4j文件配置在控制台打印sql语句
- 利用C#自身类实现MD5编码(字符串/文件)
- 2015年考研核心考点命题思路解密——操作系统 第2章 进程管理 PV算法 文件打印问题 过桥问题
- 使用递归打印该目录下的所有子目录和文件
- 程序打印自身代码的两种方法
- 存储过程打印日志并保存文件
- Dos命令打印文件以及Dos打印到USB打印端口
- java读取txt目标文件中的数据打印到控制台
- Tsinsen-A1105===数据很弱, 我用dfs(打印路径+发现自身的毛病)过了, 这题输入部分比较有趣。。。
- android c成代码编译出来的bin(system/bin/目录下)文件 ,在代码中增加打印的方法
- Struts2+freemarker实现打印出xml文件
- Csharp 打印Word文件默認打印機或選擇打印機設置代碼
- windows server 2008下双击txt文件用记事本打开自动打印的问题解决