我试图模仿一个while循环来计算一定数量的元音中的元音。第一个输入是要输入的行的总数。然而,这开始循环并输出0.这意味着它只计算7行而不是8.我可以通过将count设置为-1来解决这个问题,但它仍会输出随机零。我有没有办法改变循环来解释这个问题?
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string sentence;
int count;
int total;
int length;
int lengthcount;
int output;
output = 0;
length = 0;
count = 0;
total = 0;
lengthcount = 0;
cin >> total;
while (total != count){
getline(cin, sentence);
length = sentence.length();
while (length != lengthcount){
switch(sentence[lengthcount]){
case 'a':
++output;
break;
case 'e':
++output;
break;
case 'i':
++output;
break;
case 'o':
++output;
break;
case 'u':
++output;
break;
case 'y':
++output;
break;
}
++lengthcount;
}
cout << output << " ";
++count;
lengthcount = 0;
output = 0;
}
return 0;
}
答案 0 :(得分:2)
您可以在读取行本身时读取行数。
string totalstring;
getline(cin, totalstring);
total = stoi(totalstring);
这样,换行字符将被消耗。