在文件中逐行迭代段落中的单词

时间:2014-05-16 02:46:21

标签: c++ stringstream

我对istringstream操作有点新意。我需要找到一种方法来迭代包含八个段落的文本文件中的单词。我需要获取每个单词,测试某些条件,然后如果它通过清单则存储到链表中。我需要帮助的是如何逐个提取每个单词,使用它,检查它,等等。这是我的一些代码:有人可以提供一些建议吗?我有一个循环,但它不会更新字符串子串的值,谢谢

#include <iostream>
#include <string>
#include <sstream>
#include <fstream>

using namespace std;

string getLineOfText(ifstream &strIn);
string parseLineOfText(string&);


int main()
{
ifstream in("Text.txt");
istringstream strI;
string substrings;
string strg;
int lineCount = 0;




while (!in.eof())
{
    strg = getLineOfText(in);   
    ++lineCount;

    strI.str(strg);

    while (strI >> substrings)
        cout << substrings << " ";

    strI.str("");
}

cout << substrings << endl;
cout << endl << lineCount << endl;

system("pause");

return 0;
}


string getLineOfText(ifstream &strIn)
{
string lineTxt;
getline(strIn, lineTxt);

return lineTxt;
}

1 个答案:

答案 0 :(得分:0)

strI的定义移到外部while循环中。

int main()
{
   ifstream in("Text.txt");
   string strg;
   int lineCount = 0;

   while (!in.eof())
   {
      strg = getLineOfText(in);   
      ++lineCount;

      istringstream strI(strg);
      string substrings;

      while (strI >> substrings)
         cout << substrings << " ";
   }

   cout << endl << lineCount << endl;

   system("pause");

   return 0;
}