Ir ao conteúdo
  • Cadastre-se
nanquinote

Controle de fluxo e outro

Recommended Posts

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;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nanquinote usa o "DO WHILE":

do {
  cout << "\nInsira GENERO...\n\tR - Romance\tF - Ficcao\tE - Esoterismo\tO - Outros\n"; cin >> cad[i].genero;
while( validaGen(cad, i) == false );

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×