0
我正在嘗試編寫一個程序來檢查其他單詞中有多少單詞。然後告訴用戶哪個單詞中有最多的單詞。出於某種原因,while循環打破了,我無法重新加載文件。有任何想法嗎?檢查自己的文件
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct finalWord {
string word;
int number;
};
ostream& operator<<(ostream& o, const finalWord& f) {
return o << f.word << ": " << f.number;
}
int main() {
finalWord f;
string line, holder, line2;
ifstream myFile("enable1.txt");
int counter;
int holdlen;
size_t found;
if (myFile.is_open()){
while(getline(myFile,line)){
holder = line;
while (getline(myFile, line)){
found = holder.find(line);
if (found != string::npos){
counter++;
}
if (counter > holdlen) {
f.word = line;
f.number = counter;
holdlen = counter;
}
counter = 0;
}
}
}
cout << f << endl;
}
您可能想要先將所有單詞讀入到'std :: vector'中,以便您可以輕鬆地使用它們。 – 2014-12-02 06:08:29
謝謝。我正在考慮這樣做,但不確定是否有辦法在沒有將整個列表加載到內存中的情況下執行此操作。 – Jlegend 2014-12-02 06:30:40
@Jiegend:這是可能的,但您需要每次重新打開文件。 – 2014-12-02 06:36:58