你们过去一直非常有帮助,所以非常感谢。我将尝试在这里收集一堆问题,所以任何和所有的帮助,再次,非常感谢。
第一个问题。我正在尝试从文本文件中读取单词,按字母顺序排列它们,并将它们存储在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之后尝试打印,没有效果。我知道将节点插入树中工作正常,所以这不是问题。