c++陷入循环

C++ Stuck in Loop

本文关键字:循环 c++      更新时间:2023-10-16
huffmanFile.open("code.txt");
while(huffmanFile.peek() != EOF)
{
    cin >> letters[c] >> numbers[c];
    c++;
}
huffmanFile.close();

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

我尝试在执行这个之后从我的main函数输出c,它不会退出while循环。我试过调试,但无济于事。

我已经将这个程序与我编写的许多其他程序进行了比较,但仍然没有运气。

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

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

解释:如果到达流的终点,istream::operator >>设置它的内部标志eofbit。它还返回*this,允许我们执行像cin >> a >> b >> c这样的一系列读取。之后,while子句测试istream对象,即调用内部bool operator(),如果设置了eofbit标志,则返回true,否则返回false

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

循环永远不会结束,因为文件的读位置永远不会进阶。