读入一个C++程序,输入m、n两个数字,从第m行起的n行代码将作为注释使用(即在这些行前面加上”//”),新程序保存到另一个.cpp文件中,并在屏幕上显示处理过的程序,显示时加上行号。
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
using namespace std;
void NewForm(char *filename);
int main()
{
ifstream fin;
fin.open("source.cpp");
if(!fin){cerr<<" Open error..."<<endl;exit(1);}
ofstream fout;
fout.open("newsource.cpp");
if(!fout){cerr<<"输出粗错。。"<<endl;exit(1);}
int m,n;
cout<<"输入加注释的行数(m行到n行):"<<endl;
cin>>m;
cin>>n;
char ch2;//用来逐个字符的读取文件
int num=0;//用来表示读取到的行数
while(!fin.eof())
{
fin.get(ch2);
if('\n'==ch2)num++;
if('\n'==ch2&&(num>=m&&num<=n))
{
ch2='/';
fout<<ch2<<ch2<<endl;
}
else {fout<<ch2;}
}
fout.close();
fin.close();
NewForm("newsource.cpp");
return 0;
}
void NewForm(char*Filename)
{
ifstream fin;
fin.open(Filename);
char line[300];
if(!fin){cerr<<"错误了。。"<<endl;exit(1);}
int i=1;
while(!fin.eof())
{
fin.getline(line,300,'\n');
cout<<setw(2)<<i++<<" : "<<line<<endl;//getline丢弃换行符,所以要加上endl
}
}