我正在尝试阅读有关A.一个单词和B.所述单词的出现频率的信息。当函数读取信息时,第一个调用从左(Word)到右(频率)读取信息,然后下一个是右(频率)到左(Word)读取信息。我认为这是由于我的格式。我的假设是跳过这个词。
Startup.cs
dicFile是其输出到的文本文件。 s.key是单词,s.wordcount是整数。
文本文件的格式为:
会计3
Apple 1
面包1
....
被
阅读dicFile << s.key << " " << s.wordCount << endl;
我猜是因为无法处理“会计”,它在atoi崩溃了。
答案 0 :(得分:1)
这是因为它无法处理“ Apple”。
首先,while (dictionaryFile >> word)
读取“会计”,然后
dictionaryFile >> word >> freq;
将“ 3”读入word
,将“ Apple”读入freq
。
您应该做的是
while (dictionaryFile >> word >> freq) {
int frequ = stoi(freq);
// ...
或者您可以删除一堆变量改组并直接读入您的“项目”:
while (dictionaryFile >> newItem.key >> newItem.wordCount) {
tree.AVL_Insert(newItem);
}