处理C++源代码的程序(3)

(3)读入一个C++程序,输入m、n两个数字,从第m行起的n行代码将作为注释使用(即在这些行前面加上”//”),新程序保存到另一个.cpp文件中,并在屏幕上显示处理过的程序,显示时加上行号。

    #include <fstream>    
    #include<iostream>    
    #include<cstring>    
    #include<cstdlib>    
    using namespace std;    
    void outprogram(const char *filename);    
    int main( )    
    {    
        char line[256];    
        int m,n;    
        ifstream sourceFile("source.cpp",ios::in);  
        if(!sourceFile)         
        {    
            cerr<<"source code read error!"<<endl;    
            exit(1);    
        }    
        ofstream outFile("newsource.cpp",ios::out);    
        if(!outFile)         
        {    
            cerr<<"new source code write error!"<<endl;    
            exit(1);    
        }    
        cout<<"您要将第m行开始的n行代码作为注释,请输入m和n:";    
        cin>>m>>n;    
        int n1=0;    
        while(!sourceFile.eof())    
        {    
            sourceFile.getline(line,255,'\n');    
            n1++;    
            if(n1>=m&&n1<m+n)    
                outFile.put('/').put('/');    
            outFile.write(line,strlen(line));    
            outFile.write("\n",1);    
        }    
        outFile.close();    
        sourceFile.close();    
        cout<<"经过处理后的源程序是:"<<endl;    
        outprogram("newsource.cpp");    
        return 0;    
    }    
        
    void outprogram(const char *filename)    
    {    
        char line[256];    
        int n = 1;    
        ifstream inFile(filename, ios::in);      
        if(!inFile)         
        {    
            cerr<<"file open error!"<<endl;    
            exit(1);    
        }    
        while (!inFile.eof())    
        {    
            inFile.getline(line,255,'\n');    
            cout<<n<<'\t'<<line<<endl;    
            n++;    
        }    
        inFile.close();    
        return;    
    }    


发布了129 篇原创文章 · 获赞 14 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_33757765/article/details/51744408