//test.cpp
#include "TextQuery.h"
#include <STRING>
#include <VECTOR>
#include <FSTREAM>
#include <IOSTREAM>
using namespace std;
string make_plural(size_t ctr,const string &word,const string &ending)
{
return (ctr == 1) ? word : word + ending;
}
//打开输入文件流in并绑定到给定文件
ifstream& open_file(ifstream &in,const string &file)
{
in.close();
in.clear();
in.open(file.c_str());
return in;
}
void print_results(const vector<TextQuery::line_no>& locs,const string& sought,const TextQuery& file)
{
typedef vector<TextQuery::line_no> line_nums;
line_nums::size_type size = locs.size();
cout<<"\n"<<sought<<" "<<"occurs"<<size<<" "<<make_plural(size,"time","s")<<endl;
line_nums::const_iterator it = locs.begin();
for(;it != locs.end();++it)
{
cout<<"\t(line "<<(*it) + 1<<")"<<file.text_line(*it)<<endl;
}
}
//进入cmd命令
//进入根目录 cd\
//进入 E:\C++学习!\C++ Primer\习题10.32\Debug
//执行 TEST.exe C:\1.txt
//int main(int argc,char **argv)
int main()
{
int argc = 2 ;
string argv = "C:\\1.txt";
ifstream infile;
// if (argc<2 || !open_file(infile,argv[1]))
if (argc<2 || !open_file(infile,argv))
{
cerr<<"No input file!"<<endl;
return EXIT_FAILURE;
}
TextQuery tq;
tq.read_file(infile);
while(true)
{
cout<<"enter word to look for,or q to quit"<<endl;
string s;
cin>>s;
string ret;
for (string::const_iterator it = s.begin();it != s.end();++it)
{
ret += tolower(*it);
}
s = ret;
if (!cin || s == "q" || s == "Q")
{