处理C++源代码的程序

来源:互联网 发布:js点击计数器 编辑:程序博客网 时间:2024/06/06 02:23
  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. }    
0 0
原创粉丝点击