任何人都可以告訴我爲什麼我的函數不會打印第一個字母后的第一個字母?這是我的代碼。C++函數將不會打印行的第一個字母
void plusScores(ifstream& in, ostream& out)
{
string name;
char score;
int plus = 0;
int minus = 0;;
double sum;
double percent;
while (getline(in, name))
{
while (in >> score && (score == '+' || score == '-'))
{
if (score == '+')
plus++;
else if (score == '-')
minus++;
}
sum = plus + minus;
percent = (plus/sum) * 100;
out << fixed << showpoint << setprecision(1);
out << name << ": " << percent << "% plus" << endl;
plus = 0;
minus = 0;
}
}
我的輸出應該是這樣的:
Kane, Erica: 40.0% plus
Chandler, Adam: 75.0% plus
Martin, Jake: 100.0% plus
Dillon, Amanda: 62.5% plus
相反,我得到這樣的:
Kane, Erica: 40.0% plus
handler, Adam: 75.0% plus
artin, Jake: 100.0% plus
illon, Amanda: 62.5% plus
的文本文件,它的閱讀這個樣子的:
Kane, Erica
--+-+
Chandler, Adam
++-+
Martin, Jake
+++++++
Dillon, Amanda
++-++-+-
['的std :: count'](http://en.cppreference.com/w/cpp/algorithm/count)結合推薦使用std的' ::'getline'代表'+ -'值的行可能會非常方便。 – WhozCraig