【发布时间】:2017-09-20 03:52:37
【问题描述】:
我决定制作一个沙盒应用程序,它可以帮助我更多地练习矢量,并且程序的关键输出仅在眨眼间显示。窗口本身并没有立即退出,因为我看到其他人正在处理这个问题。我的程序计算 n 个向量 int 值的平均值,然后将其显示出来。
#include <iostream>
#include <vector>
using namespace std;
double avgVector(vector<int>);
int main()
{
vector<int> values;
int numValues;
double average;
cout << "How many values do you wish to average? ";
cin >> numValues;
for (int count = 0; count < numValues; count++)
{
int tempValue;
cout << "Enter an integer value: ";
cin >> tempValue;
values.push_back(tempValue);
}
average = avgVector(values);
cout << "Average: " << average << endl;
return 0;
}
double avgVector(vector<int> vect)
{
int total = 0;
double avg = 0.0;
if (vect.empty())
cout << "No values to average.\n";
else
{
for (int count = 0; count < vect.size(); count++)
total += vect[count];
avg = static_cast<double>(total) / vect.size();
}
return avg;
}
消息“Average:”+平均值一眨眼就显示出来了,我尝试过包含std::cin.get()和std::getChar()等字符捕获函数
【问题讨论】:
-
如果您选择 run(Ctrl+F5) 而不是 Debug(F5) 控制台应该保持打开状态,直到您手动关闭它。如果要调试 - 在 main() 的最后一行添加断点 (F9)
-
由于在您的示例中没有任何东西可以阻止程序退出,因此很难知道您的任何尝试是否正确,或者如果不正确,如何纠正它们。通常,您希望在再等待 1 个字符之前忽略输入缓冲区中的任何剩余数据。 FWIW 我要么在最后一行放一个断点,要么在调试器之外运行它,以更合适的为准。
-
@ArtemyVysotsky 我尝试通过 Ctrl+F5 运行程序,但不幸的是,同样的情况出现了。我不太确定问题是什么。
-
stackoverflow.com/a/1775870/8491726 - 请参阅答案的第一条评论
-
@Asesh 谢谢!我试过了,它奏效了。对于 Retired Ninja,我也尝试了该方法,但程序将我带到了调试过程,并且在第二次尝试时没有暂停屏幕。我很确定这是因为我搞砸了,但我会再试一次。
标签: c++