Это код плохого стиля. Он будет работать и считать все символы в переключателе. Вот моя версия, которая поможет вам понять:
unsigned int aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
char ch;
while (std::cin >> ch)
{
switch (ch) {
case 'a':
++aCnt;
break;
case 'e':
++eCnt;
break;
case 'i':
++iCnt;
break;
case 'o':
++oCnt;
break;
case 'u':
++uCnt;
break;
case '-':
goto end;
}
}
end:
cout << aCnt << "\t" << eCnt << "\t" << iCnt << "\t" << oCnt << "\t" << uCnt;
Так ставить «-», а затем Enter, чтобы увидеть результаты.
Вот более простой способ сделать это
unsigned int aCnt =0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;
char ch;
bool getCharacter = true;
while (getCharacter)
{
std::cin >> ch;
switch (ch) {
case 'a':
++aCnt;
break;
case 'e':
++eCnt;
break;
case 'i':
++iCnt;
break;
case 'o':
++oCnt;
break;
case 'u':
++uCnt;
break;
case '-':
getCharacter = false;
break;
}
}
cout << aCnt << "\t" << eCnt << "\t" << iCnt << "\t" << oCnt << "\t" << uCnt;
Что вы ожидаете показать и почему? –
Этот код не должен показывать ничего, независимо от того, что вы вводите. – deviantfan