我有一些基本代码,我正试图在终端中为一个类运行。完成输入后,我无法使用 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;
}
最佳答案
你不应该只循环测试eof
。流还有其他方式出错。像这样循环:
while( cin.get(ch) )
{
// ...
}
关于c++ - CTRL+D 在 Mac OS X 终端突然停止工作,不会执行 EOL 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614364/