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循环。我试过调试没有用。我把它与我写的其他许多程序进行了比较,但仍然没有运气。
答案 0 :(得分:2)
假设huffmanFile
是istream
对象类型,您可以尝试使用此变体:
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
是标准输入流,通常从键盘输入。您需要从文件中读取输入。
循环永远不会终止,因为文件读取位置永远不会升级。