我正在创建一个名为SpellChecker
的对象,它可以纠正字符串中单词的拼写。
要检查单词是否拼写正确,如果没有更正,我有一个正确单词的文本文件(每行一个)。我还有一个拼写错误的单词的文本文件,它们的更正用标签分隔。
我的问题是在我的文本文件中阅读。我创建了一个if
语句,以查看我的文件是否成功打开。但是,我相信我的文件应该是可读的,而不是。我试图找出为什么会发生这种情况。
这是我的SpellChecker
构造函数:
SpellChecker::SpellChecker(string tempLanguage, string correctWordsFile,string wordCorectionsFile){
language=tempLanguage;
ifstream istream;
istream.open(correctWordsFile);
if(!istream.is_open()){
cout << "Error opening " << correctWordsFile << endl;
}
int count=0;
string temp;
while(!istream.eof()){
getline(istream,temp);
correctWords[count] = temp;
count++;
}
numCorrectWords = count;
istream.close();
istream.open(wordCorectionsFile);
if(!istream.is_open()){
cout << "Error opening " << wordCorectionsFile << endl;
}
int j=0;
int i=0;
char temp2;
while(!istream.eof()){
istream.get(temp2);
if(temp2 == '\t'){
j++;
}
else if(temp2 == '\n'){
i++;
j = 0;
}
else
wordCorections[i][j] += temp2;
}
numwordCorrections = i;
istream.close();
}
这是我的main
:
int main(){
SpellChecker spellCheck("English","CorectWords.txt","WordCorections.txt");
spellCheck.viewCorrectWords();
spellCheck.viewCorrectedWords();
spellCheck.setEnd('~');
spellCheck.setStart('~');
cout << spellCheck.repair("I like to eat candy. It is greatt.");
}
终端返回:
"Error opening CorectWords.txt"
如何解决此问题?
答案 0 :(得分:0)
对库函数is_open()的调用返回false,这可能是由于众多原因之一
确保:
1.您使用了正确的数据文件名称
2.数据文件与程序的可执行文件位于同一文件夹中
任何以前阅读它的程序都已关闭它。