昨天做了个打印自身文件的程序,这个程序完成用了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