【9.18】编写一个程序,用于统计某文本文件中单词is的个数。
#include<iostream>
#include <fstream>
using std::cin;
using std::cout;
using std::endl;
using std::ios;
using std::ofstream;
using std::ifstream;
class File{
public:
File();
~File();
int search_is();
private:
ofstream fout1;
ifstream fout2;
};
File::File() //建立一个文本文件
{
ofstream fout1("text1.txt", ios::out);
if (!fout1)
{
cout << "Cannot open output file.";
system("pause");
exit(1);
}
fout1 << "He has a girlfriend and he is a boy. ";//输入文本文件的内容
fout1.close();
}
File::~File()
{
fout2.close();
}
int File::search_is()//打开文本文件,寻找is,统计is
{
int f0 = 0, fi = 0, fs = 0;
int sum = 0;
char ch;
ifstream fout2("text1.txt", ios::in);
if (!fout2)
{
cout << "Error open file.";
system("pause");
exit(2);
}
//是单词is的条件为:i前是空格,i后是s,并且s后是空格
while ((ch = fout2.get()) != EOF)
{
if (ch==‘ ‘) //如果是空格
{
if (fs == 1) //如果空格前是 is,
{
++sum;
}
f0 = 1; // 1表示是空格
fs = 0; //保持fs为0;
}
else
{
if (f0==1&&ch==‘i‘) //如果是i,且前面有空格
{
fi = 1;
}
else if (fi==1&&ch==‘s‘) //如果是s,且前面有空格和i;
{
fs = 1;
fi = 0;
}
else if (fs==1) //如果前面有空格和i和s,但s后不是空格
{
fs = 0;
}
f0 = 0;//重置f0;
}
}
cout << "is的个数为: " << sum << "个" << endl;
return 0;
}
int main()
{
File fi;
fi.search_is();
system("pause");
return 1;
}
Question:
对于我建立的这个类,我觉得怪怪的,我想知道,如何建立: 要先写内容进文本,然后又要对此文本进行有关处理 的类,特别是关于这个类的构造函数怎么写
原文地址:http://blog.csdn.net/jkelion/article/details/46348835