Witam!
Mam problem z programem, który w jego końcowej części pomija komendę std::cin i przechodzi dalej. Nie potrafię do końca określić dlaczego tak się dzieje. Doszedłem do wniosku, że ma to coś wspólnego z fragmentem wpisywania danych do wektora, ale nie widzę większego związku. :/ Tak wygląda przykładowy output:
Enter any positive number. Enter any other sign if you'd like to stop: 1
Enter any positive number. Enter any other sign if you'd like to stop: 2
Enter any positive number. Enter any other sign if you'd like to stop: 3
Enter any positive number. Enter any other sign if you'd like to stop: !
Prime numbers of these you entered are following:
2
3
Enter a number of primes you'd like to sum:
C:\Users\admin\source\repos\Debug\ConsoleApplication3.exe (proces 9544) zakończył działanie.
#include "pch.h"
#include <iostream>
#include <vector>
std::vector <int> Primes(std::vector<int> numbers)
{
std::vector<int> prime_num;
int counter;
for (int n = 0; n < numbers.size(); n++)
{
counter = 0;
for (int i = 1; i <= numbers[n]; i++)
{
if (numbers[n] % i == 0)
counter++;
else;
}
if (counter == 2)
prime_num.push_back(numbers[n]);
}
return prime_num;
}
int main()
{
try
{
std::vector<int> numbers;
int number;
int sum_number;
std::cout << "Enter any positive number. Enter any other sign if you'd like to stop: ";
while (std::cin >> number)
{
std::cout << "Enter any positive number. Enter any other sign if you'd like to stop: ";
if (number < 0)
throw number;
numbers.push_back(number);
}
std::vector<int> prime_num = Primes(numbers);
std::cout << "\nPrime numbers of these you entered are following: \n\n";
for (int a = 0; a < prime_num.size(); a++)
{
std::cout << prime_num[a] << std::endl;
}
std::cin >> sum_number;
}
catch(int x)
{
std::cout << "\nAn error has occured. Error code: " << x << std::endl;
}
Z góry dziękuję. ;)