为什么我的应用程序关闭,即使我有cin.get();?

时间:2017-05-03 17:46:55

标签: c++ cin

正如标题所说,我不想使用系统("暂停"),因为我不想发展一个糟糕的习惯。 即使我有cin.get();

,我也无法弄清楚为什么它会一直关闭
#include <iostream>

using namespace std;


float medel(int v[], int n)
{
    float res = 0.0;

    for (int i = 0; i < n; i++) 

    {
        cin >> v[i];

        res += ((double)v[i] / n);
    }

    return res;


}

int main() {
    const int num = 10;
    int n[num] = { 0 };

    cout << "Welcome to the program. Enter 10 positive numbers: " << endl;;
    cin.get();
    cout << "The average of ten numbers entered is: " << medel(n, num) << endl;
    cin.get();
    return 0;
}

1 个答案:

答案 0 :(得分:4)

cin.get()会消耗输入流中的单个字符。

如果还没有,那么程序将阻止等待一个,这是您的期望。

然而,其中 一个:在您上一次cin >> v[i]操作之后 Enter keypress中的换行符。

Don't use cin.get() to keep your application running at the end, anyway

顺便说一下,你的程序逻辑是有缺陷的;你似乎提示正数,然后在实际要求任何输入之前引入输出。

这样的事情怎么样:

int main()
{
    const int num = 10;
    int n[num] = { 0 };

    cout << "Welcome to the program. Enter " << num  << " positive numbers: " << endl;
    const float average = medel(n, num);
    cout << "The average of the numbers entered is: " << average << endl;
}

找到一个方法之外的方式,以保持终端窗口打开,如果它还没有。这不是你的计划的工作。