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

Iterating Over Words in a Paragraph Line by Line in a file

本文关键字:段落中 单词 迭代 逐行 文件      更新时间:2023-10-16

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

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