Ir ao conteúdo

Posts recomendados

Postado

Gente, tenho 2 dúvidas sobre o código abaixo.

1. Como eu faço pra quando chegar no if dentro do for o programa voltar pra última pergunta ("insira genero"), e não pro início da iteração?

*Já tentei o break, mas ele pára o programa por completo

 

2. Conseguem me dizer por que a função não está funcionando? O trecho de código funcionava antes de eu colocar como função. (Basicamente o problema que estou tendo é que qualquer coisa cai em gênero inválido, mesmo os caracteres maiúsculos R, F, etc...)

 

#include <iostream>
#define MAX 5
using namespace std;

struct CLIENTE{
	string nome, telefone;
	int codID;
	char genero;
};

bool validaGen(CLIENTE l[], int i);

int main(){
	CLIENTE cad[MAX];
	bool status;

	for(int i=0; i<MAX; i++){
		cout << "--- CADASTRO DE CLIENTE --- " << endl;
		cout << "CLIENTE " << i+1 << ": " << endl;
		cout << "\nInsira NOME: "; cin.sync(); getline(cin, cad[i].nome);
		cout << "\nInsira CODIGO: "; cin >> cad[i].codID; cin.sync();
		cout << "\nInsira GENERO...\n\tR - Romance\tF - Ficcao\tE - Esoterismo\tO - Outros\n"; cin >> cad[i].genero;
		status = validaGen(cad, i);
		if(status == false){
			i--; //VOLTAR PARA GENERO E NAO PRO INICIO DO LOOP
		}
	}
}

bool validaGen(CLIENTE l[], int i){
	l[i].genero = toupper(l[i].genero);
	if(l[i].genero != 'R' || l[i].genero != 'F' || l[i].genero != 'E' || l[i].genero != 'O'){
		cout << "\nGENERO INVALIDO "<< endl;
		return false;
	}
	return true;
}

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!