循环的I / O问题

时间:2017-08-07 19:14:29

标签: c++

我正在开始一个小项目,在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,现在我可以更好地理解这个问题了。

0 个答案:

没有答案