我还是编程的初学者,我得到一个作业要求我制作一个读取文本文件的代码然后删除停用词。我做了一个代码,但它不是那么好。我想要的是知道如何从一行删除一个单词,并在删除停用词后应用案例折叠到文件。
这是我的代码......
string line, deleteline;
ifstream stopword;
stopword.open("example.txt");
if (stopword.is_open())
{
while ( getline (stopword,line) )
{
cout << line << endl;
}
stopword.close();
}
else cout << "Unable to open file";
ofstream temp;
temp.open("temp.txt");
cout << "Please input the stop-word you want to delete..\n ";
cin >> deleteline;
while (getline(stopword,line))
{
if (line != deleteline)
{
temp << line << endl;
}
}
temp.close();
stopword.close();
remove("example.txt");
rename("temp.txt","example.txt");
cout <<endl<<endl<<endl;
system("pause");
return 0;
}
答案 0 :(得分:0)
代码是正确的,但你关闭了文件......在关闭之后,你试图稍后阅读它。除非你再打开它,否则这不会有用。
在这里关闭文件(main中的第7行):
stopword.close();
然后,在第二个while
中,您尝试从该流中getline
:
while (getline(stopword,line))
为了使其正常工作,您必须再次open
该文件。并且clear
流,因为它可能设置了eofbit
错误状态标志。