#include<fstream>
#include<iostream>
#include<string>
using namespace std;
string e[8000],c[8000];
int wordsnum=0;
int chazhao(int low,int high,string k);
int main()
{
string key; //查询关键词
//将文件中的数据读入到对象数组中
ifstream infile("dictionary.txt",ios::in); //以输入的方式打开文件
if(!infile) //测试是否成功打开
{
cerr<<"open error!"<<endl;
exit(1);
}
while (!infile.eof())
{
infile>>e[wordsnum]>>c[wordsnum];
++wordsnum;
}
infile.close();
do{
int n, low=0,high=wordsnum-1;
cout<<"请输入要查的单词(0000结束)"<<endl;
cin>>key;
if(key=="0000")
break;
else{
n=chazhao(low,high,key);
if(n==-1)
cout<<"查无此词"<<endl;
else
cout<<key<<"的意思是: "<<c[n]<<endl<<endl;
}
}while(1);
cout<<"欢迎下次再来"<<endl<<endl;
return 0;
}
int chazhao(int low,int high,string k){
int i;
while(low<=high){
i=(low+high)/2;
if(e[i]==k)
return i;
else{
if(e[i]>k)
high=i-1;
if(e[i]<k)
low=i+1;
}
}
return -1;
}
运行结果: