处理C++源代码的程序

  1. /* 
  2. *Copyright (c) 2016,烟台大学计算机学院 
  3. *All rights reserved. 
  4. *文件名称:main.cpp 
  5. *作    者:李德彪
  6. *完成时间:2016年6月23日 
  7. *版 本 号:v1.0 
  8. * 
  9. *问题描述:项目 - 处理C++源代码的程序。 
  10. *输入描述:读入程序。 
  11. *程序输出:显示处理过的程序,显示时加上行号。 
  12. */  
  13.   
  14. #include <fstream>    
  15. #include<iostream>    
  16. #include<cstring>    
  17. #include<cstdlib>    
  18. using namespace std;    
  19. void outprogram(const char *filename);    
  20. int main( )    
  21. {    
  22.     char line[256];    
  23.     int m,n;    
  24.     //将文件中的数据读入到字符数组中    
  25.     ifstream sourceFile("source.cpp",ios::in);  //以输入的方式打开文件    
  26.     if(!sourceFile)       //测试是否成功打开    
  27.     {    
  28.         cerr<<"source code read error!"<<endl;    
  29.         exit(1);    
  30.     }    
  31.     ofstream outFile("newsource.cpp",ios::out);  //以输出的方式打开文件    
  32.     if(!outFile)       //测试是否成功打开    
  33.     {    
  34.         cerr<<"new source code write error!"<<endl;    
  35.         exit(1);    
  36.     }    
  37.     cout<<"您要将第m行开始的n行代码作为注释,请输入m和n:";    
  38.     cin>>m>>n;    
  39.     int n1=0;    
  40.     while(!sourceFile.eof())    
  41.     {    
  42.         sourceFile.getline(line,255,'\n');    
  43.         n1++;    
  44.         if(n1>=m&&n1<m+n)    
  45.             outFile.put('/').put('/');    
  46.         outFile.write(line,strlen(line));    
  47.         outFile.write("\n",1);    
  48.     }    
  49.     outFile.close();    
  50.     sourceFile.close();    
  51.     cout<<"经过处理后的源程序是:"<<endl;    
  52.     outprogram("newsource.cpp");    
  53.     return 0;    
  54. }    
  55.     
  56. void outprogram(const char *filename)    
  57. {    
  58.     char line[256];    
  59.     int n = 1;    
  60.     ifstream inFile(filename, ios::in);  //以输入的方式打开文件    
  61.     if(!inFile)       //测试是否成功打开    
  62.     {    
  63.         cerr<<"file open error!"<<endl;    
  64.         exit(1);    
  65.     }    
  66.     while (!inFile.eof())    
  67.     {    
  68.         inFile.getline(line,255,'\n');    
  69.         cout<<n<<'\t'<<line<<endl;    
  70.         n++;    
  71.     }    
  72.     inFile.close();    
  73.     return;    
  74. }    
  75. /*
    *Copyright (c) 2016,烟台大学计算机学院
    *All rights reserved.
    *文件名称:main.cpp
    *作    者:李磊涛
    *完成时间:2016年6月23日
    *版 本 号:v1.0
    *
    *问题描述:项目 - 处理C++源代码的程序。
    *输入描述:读入程序。
    *程序输出:显示处理过的程序,显示时加上行号。
    */
    
    #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;  
    }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值