Aus „Programming: Principles and Practice Using C++“
/*
Exercise is to first define the amount of numbers n beginning from the first
to n in a vector, enter a random set of integer values to a vector and then
sum the amount of n values. Checks to prevent out of range errors must be implemented.
*/
#include "std_lib_facilities.h"
using namespace std;
void checkvecsize (unsigned long vecsize, int n)
{
if (n>vecsize)
error("Youw ant to sum more value than are available!\n"); // Check if vector size is enough.
}
int main ()
try
{
int n;
cout << "Please enter the number of values:\n";
cin >> n;
bool stop = 0; // to keep the while loop going until told otherwise
vector<int> numbers;
int values{};
int sum = 0;
string value_check;
cout << "Please enter a couple of number. Press s to stop! \n";
while(!stop)
{
if(cin>>values)
numbers.push_back(values);
else
{
cin.clear();
cin >> value_check;
if (value_check=="s") // by pressing s the while loop stops.
stop = 1;
else
error("Use only numbers or (s) to stop");
}
}
checkvecsize(numbers.size(), n);
for (int i=0; i<n; i++)
{
sum = sum + numbers[i];
}
cout << "The sum of the first " << n << " values = " << sum << "!\n";
}
catch(runtime_error e)
{
cout << e.what() << '\n';
}
catch (...)
{
cout << "Exiting with unknown error" << '\n';
}