我正在尝试从文件中读取字符串并将其与另一个字符串进行比较。 出于某种原因,getline只返回并清空。
int count =0;
string line;
ifstream emailFile;
emailFile.open("email.txt");
if (emailFile.is_open())
{
cout << "file open \n";
while (emailFile.eof()!=true)
{
getline(emailFile,line);
cout <<line<<endl;
for (int i=0; i<27; i++)
{
cout <<"line: "<< line << endl;
cout<< "Spamword: "<< spamWords[i]<<endl;
if (line.find(spamWords[i]) != string::npos)
{
cout <<"found line: "<< line << endl;
cout<< "found Spamword: "<< spamWords[i]<<endl;
count +=2;
}
}
}
}
else cout<< "file not found";
cout <<count;
}
我尝试过对其进行故障排除,我真的不明白为什么没有阅读。
任何帮助将不胜感激。
答案 0 :(得分:1)
这个人遇到了同样的问题。
http://www.cplusplus.com/forum/beginner/27799/
确保您的txt文件位于内置exe的同一目录中。 从上面的链接,这行代码可能有助于确保您实际上在文件中。
//Check if data file is open and reports
if(read.is_open())
cout << "File ./" << file_name << " is open.\n";
else
cout << "Error opening " << file_name << ".\n";