从文本文件中删除停用词

时间:2013-11-29 17:09:04

标签: c++

我还是编程的初学者,我得到一个作业要求我制作一个读取文本文件的代码然后删除停用词。我做了一个代码,但它不是那么好。我想要的是知道如何从一行删除一个单词,并在删除停用词后应用案例折叠到文件。

这是我的代码......

  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;
}

1 个答案:

答案 0 :(得分:0)

代码是正确的,但你关闭了文件......在关闭之后,你试图稍后阅读它。除非你再打开它,否则这不会有用。

在这里关闭文件(main中的第7行):

stopword.close();

然后,在第二个while中,您尝试从该流中getline

while (getline(stopword,line))

为了使其正常工作,您必须再次open该文件。并且clear流,因为它可能设置了eofbit错误状态标志。