{
ifstream inDoc(docname . c _ str());//構造壹個文件對象
如果(!InDoc) //無法構造對象,返回
{
返回false
}
unsigned int docId = lower _ bound(doclist . begin()、docList.end()、docName)-doclist . begin();//查找docName在列表中的位置,如果沒有找到則返回。
if ( docId == docList.size())
{
返回false
}
字符串curDoc//聲明壹個字符串對象
curdoc . reserve(MAX _ DOCSIZE);//確定緩沖區大小
getline ( inDoc,curDoc,inDoc . widen(EOF));//獲取所有內容
curDoc+= " ";
string word,engword
int englen = 1;
for(int I = 0;我& lt= curdoc . size()-8;++i) //遍歷
{
if(isChinese(curDoc[I])& amp;& ampis Chinese(curdoc[I+2])//如果是中文,輸入以下邏輯。
{
for(int j = 8;j & gt=4;j-=2)
{
word = curDoc.substr ( i,j);//壹次截取兩個字符
if(is Chinese(word[word . size()-2])& amp;& ampisChinese(word[word.size()-2])
{
If (bqueryCHdic( word)) //如果是中文,查字典,找到,處理,設置。
{
set ( word,docId);
I = I+j-1;
打破;
}
}
}
}
else if(al _ is letter(curdoc . at(I))& amp;& ampal _ is letter(curdoc . at(I+1)))
{
englen = 1;
while(al _ is letter(curDoc[I+englen])
{
englen++;//如果是字符,那麽數字是遞增的。
}
engword = curDoc.substr(i,englen);
turn 2 lower(eng word);//獲取字符並使其小寫。
//vec . push _ back(eng word);
setEN(engword,docId);
I = I+englen;
}
}
返回true//返回
}