昨天做了个打印自身文件的程序,这个程序完成用了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 < 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");
}
void main()
. {
system("type 1.cpp");
}
该文件保存为1.cpp