簡體   English   中英

向量無法正常運作的功能

[英]Function with vectors not working properly

當我第一次調用該函數時,它可以正常工作。

但是,當我第二次調用該函數時,它只是跳過了代碼的第一部分,在這里我試圖為向量vec_name添加一個新名稱,並將我發送到for循環。

void addNewStudent(int num) 
{
    string name;
    cout << "Add new student" << endl;
    cout << "Name : ";
    getline(cin, name);

    vec_name.push_back(name);   

    float avg = 0;
    for (int i = 1; i <= num; i++)
    {
        float temp;
        cout << endl << "Enter " << i << " grade : ";
        cin >> temp;
        avg += temp;
    }
    avg /= num;

    vec_avg.push_back(avg);
}

我究竟做錯了什么?

我在函數末尾添加了cin.ignore()。

void addNewStudent(int num) 
{
    string name;
    cout << "Add new student" << endl;
    cout << "Name : ";

    getline(cin, name);

    vec_name.push_back(name);   

    float avg = 0;
    for (int i = 1; i <= num; i++)
    {
        float temp;
        cout << endl << "Enter " << i << " grade : ";
        cin >> temp;
        avg += temp;
    }
    avg /= num;

    vec_avg.push_back(avg);

    cin.ignore();
}

更改

cin >> temp;

進入

cin >> temp >> skipws;

cin (第一個函數調用中)之后調用getline (在第二個函數調用中)將讀取一個空字符串(上一個cin的換行符)。 使用skipws解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM