Olá sou iniciante aqui no GUJ, e peço que se esse tópico não está em conformidade com as regras do GUJ por favor tomem as decisões necessárias.
minha dúvida é em questão a esse código C++ que estou escrevendo, lembrando que sou iniciante em programação.
#include <'iostream>
#include <'limits>
using std::cout;
using std::cin;
using std::endl;
int getVar(int num);
int getInt(int num);
int main(){
int n;
cout<<"Insira um inteiro. \n\n";
getInt(n);
return 0 ;
}
int getInt(int n){
cin>>n;
return getVar(n);
}
int getVar(int num){
if(!(cin>> num && !num % 2 == 0)){
cout<< num <<" Entrada nao corresponde ao tipo de variavel solicitado.\n\n";
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
getInt(num);
}
else{
cin.clear();
cout<<"\n"<< num <<" Entrada recebida com sucesso!!! \n";
return num;
}
}
Obs : Peço perdão pelos apóstrofos nos includes, é porque eles não aparecem quando estão dentro de <> a única forma que encontrei de faze-los aparecer foi essa, quem souber por favor me avise.
O que acontece é que quando digito um numero que é aceito pela função no caso um inteiro, tenho que digita-lo duas vezes para que ele seja captado, eu gostaria que ele captasse a entrada direto na primeira tentativa.
Grato pela colaboração.