/*
实验目的:文档的自动处理
实验内容:从文件中读入数据,排序并输出到另外一个文件中
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:文档的自动处理
* 作 者:薛广晨
* 完成日期:2011 年 06 月 06 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:文件WolfSheep.nls
* 问题描述:要求编写C++程序,读WolfSheep.nls,去除其中所有的注释,并保存到文件WS_nocomment.nls 中
读入每一行,复制每一行分号前面的部分。或者说,读入每一行,逐个复制文件中的字符,
如果出现分号,分号及其后的文字将不再复制。
符合任务的较高要求的程序:当注释单独占一行时,去除注释后,空行将不再保留。
* 程序输出:WS_nocomment.nls
* 程序头部的注释结束
*/
#include <iostream>
#include <fstream>
using namespace std;
bool isCommentLine(char[]);
int main()
{
int i;
ifstream readFile;
ofstream writeFile;
char ch[200];
readFile.open("WolfSheep.nls", ios::in);
writeFile.open("WS_nocomment.nls", ios::out);
while (!readFile.eof())
{
readFile.getline(ch,200,'\n');
if(!isCommentLine(ch))
{
i=0;
while(ch[i]!='\0'&& ch[i]!=';')
{
writeFile<<ch[i];
i++;
}
writeFile<<'\n';
}
}
readFile.close();
writeFile.close();
cout << "Finish!" << endl;
system("pause");
return 0;
}
bool isCommentLine(char line[]) //判断是否为独立的注释行
{
int i=0;
bool is = false;
char c=line[i];
while(c!='\0' && c!=';' && (c==' ' || c=='\t'))
{
c=line[++i];
}
if (c==';') is=true;
return is;
}