代碼的目的是基本上刪除無用數組中的文本文件中存在的單詞。我有這個非常奇怪的問題,代碼不會刪除'等待上架'這個短語中的'the'這個詞,但是其他所有測試用例(很多)都會通過。有任何想法嗎?一個特定的測試用例不會通過測試
int main(){
string useless[20] = { "an", "the" , "of", "to", "and", "but", "nor", "or", "some", "any", "very", "in", "on", "at", "before", "after", "into", "over", "through", "along"};
ifstream fin("input.txt");
if(fin.fail()){
cout << "Input failed to open" << endl;
exit(-1);
}
string line;
getline(fin, line);
getline(fin, line);
getline(fin, line);
getline(fin, line);
ofstream fout("output.txt");
while(getline(fin, line)){
vector<string> vec;
istringstream iss(line);
while (iss) {
string word;
iss >> word;
transform(word.begin(), word.end(), word.begin(), ::tolower);
vec.push_back(word);
}
for(int i = 0; i < vec.size(); i++){
for(int j = 0; j < 20; j++){
if(vec[i] == useless[j]){
vec.erase(remove(vec.begin(), vec.end(), vec[i]), vec.end());
}
}
fout << vec[i] << " ";
}
fout << endl;
}
}
歡迎來到Stack Overflow!這聽起來像你可能需要學習如何使用調試器來遍歷代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:[如何調試小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。 –
是的,是的,我可以看到一個調試器如何真正幫助我。我目前沒有使用任何IDE(只是崇高和終端),因此缺乏調試器。 –
你不需要IDE來使用調試器 - 你可以在命令行中使用gdb。 –