我正在开始一个小项目,在C ++中输入/输出名称,中期和最终成绩,但是,我遇到了一些输入/输出错误。 目前,我的代码是:
#include <iostream>
#include <string>
using namespace std;
int main() {
// declear the class size and studnet name and grade
// student number as variable, student name & grade as array
int studentNo = 2;
string studentName[studentNo];
double studentGrade[studentNo][2];
// this loop reads name and grade into the program
for (int i = 0; i < studentNo; ++i) {
cout << "Please enter student name: ";
getline(cin, studentName[i]);
cout << studentName[i] << endl;
// for each row of 2D array, [i][0] stores the mid-term grade
cout << "Please enter mid-term grade: ";
cin >> studentGrade[i][0];
// while (studentGrade[i][0] < 0 || studentGrade[i][0] > 100) {
// cout << "Wrong grade input, please enter again!" << endl;
// }
cout << studentGrade[i][0] << endl;
// for each row of 2D array, [i][1] stores the final exam grade
cout << "Please enter final exam grade: ";
cin >> studentGrade[i][1];
cout << studentGrade[i][1] << endl;
}
}
如果我输入的是:
Ryan Smith
60.0
61.0
Steve Cole
50.0
40.0
我的输出将是:
Please enter student name: Ryan Smith
Please enter mid-term grade: 60
Please enter final exam grade: 61
Please enter student name:
Please enter mid-term grade: 0
Please enter final exam grade: 6.90234e-310
但我想要的是:
Please enter student name: Ryan Smith
Please enter mid-term grade: 60
Please enter final exam grade: 61
Please enter student name: Steve Cole
Please enter mid-term grade: 50
Please enter final exam grade: 40
似乎我的声明和循环是正确的,因此我不知道我的代码的哪一部分输出错误。请帮帮我,谢谢。
编辑:当我发起这个问题时,我试图评论其他I / O代码和getline()工作正常。因此,我不知道它是与问题相关的getline()函数。感谢@NathanOliver,现在我可以更好地理解这个问题了。