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;
}
while (std::cin >> ch)
是什么意思?我输入了一封信,节目没有显示任何内容。
答案 0 :(得分:0)
这是糟糕的样式代码。 它将工作并计算切换中的所有字符。 这是我的版本,可以帮助您理解:
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;
所以放&#39; - &#39;然后按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;
答案 1 :(得分:0)
cin>>ch
表示您输入的内容为变量ch
while(cin>>ch)
表示执行输入的循环
没有cout
,因此您无法观看任何内容。
您可以添加以下代码:
switch (ch){
case 'a':
++aCnt;
cout<<aCnt<<endl;//added
break;
case 'e':
++eCnt;
cout<<eCnt<<endl;//added
break;
case 'i':
++iCnt;
cout<<iCnt<<endl;//added
break;
case 'o':
++oCnt;
cout<<oCnt<<endl;//added
break;
case 'u':
++uCnt;
cout<<uCnt<<endl;//added
break;
}
每次输入&#39; a,e,i,o,u&#39;
时,您都会看到该号码