从文本文件C ++中读取单词

时间:2013-11-18 01:45:25

标签: c++ text

你们过去一直非常有帮助,所以非常感谢。我将尝试在这里收集一堆问题,所以任何和所有的帮助,再次,非常感谢。

第一个问题。我正在尝试从文本文件中读取单词,按字母顺序排列它们,并将它们存储在AVL树中。我现在的问题是我无法获得导入的单词。该文件似乎打开很好,但我无法将它们存储在树的节点中。实际上,我甚至无法将它们打印出来,无论它们是否最终都在节点中。当有人告诉我我做错了什么时,我会觉得自己像个白痴,但至少我会说得对。

这是我希望实现的目标。

ifstream myfile("ReadMe.txt");

myfile.open("ReadMe.txt");

if (myfile.is_open())
{   
    while (!myfile.eof())
    {
        getline(myfile, line, ' ');
        string* word = new string(removeSymbols(line));
        TreeNode<string>* wordNode = new TreeNode<string>(word);
        myAVLTree->insert(wordNode);
    }
    myfile.close();
}


else cout << "Unable to open file"; 

此代码导致无限循环显示重复插入空格(“”)。

进一步调查并尝试打印出文本文件的内容会导致同样的问题。我做错了什么?

问题2.

如何对字母进行按字母顺序排列?我已经阅读了使用&lt;,&gt;运营商应该工作,但试图做到这一点导致不太理想的结果。

实际上,这就是我现在真正需要的。不是“一堆问题”,但如果你能指出我正确的方向,你们会很棒。

提前致谢!

修改

这是请求的removesymbols函数。

string removeSymbols(string str)
{
string myString = str;
string newString = "";
for (unsigned int i = 0; i < myString.length(); i++)
{
    int j = 0;
    if (isalnum(tolower(myString.at(i))))
    {
        newString.push_back(towlower(myString.at(i)));
        j++;
    }
    else
    {
        j++;
    }
}
return newString;
}

就调试尝试而言,我在getline之后尝试打印,没有效果。我知道将节点插入树中工作正常,所以这不是问题。

0 个答案:

没有答案
相关问题