C ++陷入循环

时间:2013-04-07 21:05:13

标签: c++

huffmanFile.open("code.txt");

while(huffmanFile.peek() != EOF)
{
    cin >> letters[c] >> numbers[c];
    c++;
}

huffmanFile.close();

输入文件: 一个23 B 35 C 47 D 0 E 12 F 11 G 92 H 18 我17

我尝试在执行此操作后从我的main函数输出c,它不会退出while循环。我试过调试没有用。我把它与我写的其他许多程序进行了比较,但仍然没有运气。

2 个答案:

答案 0 :(得分:2)

假设huffmanFileistream对象类型,您可以尝试使用此变体:

while (huffmanFile >> letters[c] >> numbers[c]) {
    ++c;
}

说明: 如果已到达流的末尾,istream::operator >>将设置其内部标志eofbit。它还返回*this,允许我们执行像cin >> a >> b >> c这样的读数序列。 之后,istream子句正在测试while对象,即调用内部bool operator(),如果true标志有eofbit,则会返回false已设置,{{1}}否则。

答案 1 :(得分:1)

cin是标准输入流,通常从键盘输入。您需要从文件中读取输入。

循环永远不会终止,因为文件读取位置永远不会升级。