我有基本代码,我试图在终端上运行一个类。输入完成后,我无法使用ctrl + d命令结束代码。代码查找某些字符的数量,“e”,元音以及计算使用的总字符数。昨天几个小时我能够使用Ctrl + D命令结束我的程序并继续编辑/添加它但它突然停止工作。
我注意到当一串“d”被输入到窗口中时,返回键被点击,然后使用ctrl + d,编程成功显示数据,否则任何其他输入似乎都没有提供我正在寻找的EOF命令。
我已经尝试重置我的终端,保存了“d”字符串工作的条件并再次尝试。到底是怎么回事?在广泛阅读了这个主题后,我认为这可能是由于其他事情在后台运行了?
int main() {
char ch;
int ecount=0, vowels=0, other=0;
cin.get(ch);
while(!cin.eof()) {
switch(ch) {
case 'e':
ecount++;
case 'a';
case 'i':
case 'o':
case 'u':
vowels++;
break;
default:
other++;
}
cin.get(ch);
}
cout << ecount << " "<< vowels << " " << other << endl;
}
答案 0 :(得分:1)
您不应仅循环测试eof
。流还有其他方法可以出错。就像这样循环:
while( cin.get(ch) )
{
// ...
}