Bom pessoa, estou aprendendo C agora e estou com uma dúvida.
Estou querendo fazer uma confirmação, ele tem que repetir todo o código do início caso o usuário digite a opção "Não" no final.
Estou baseando a lógica no exemplo abaixo:
char nome[31], yn;
int loop;
/do {
system("cls");
printf(" Digite seu nome: ");
gets(nome);
printf(" Seu nome e: %s \n\n", nome);
printf(" Seu nome esta correto? (Y/N): ");
scanf(" %c", yn);
if ((yn==78) || (yn==110)) loop=1; else loop=0;
} while (loop==1);
Resumidamente, o que eu quero é: Se o cabra digitar que o "Nome" está incorreto, ele consiga digitar NOVAMENTE...
Não posso utilizar o goto. Preciso fazer com algo diferente.
Estou recebendo o erro e o fechamento do cmd.
Que faço? Sei que estou errando, mas onde?
EDITANDO:
Tentei assim também:
[code]main () {
char nome[31], yn;
int loop;
system("cls");
printf(" Digite seu nome: ");
gets(nome);
printf(" Seu nome e: %s", nome);
if (NomeCHK()==1) return(0);
if (NomeCHK()==0) main();
system("pause");
exit(0);
}
int NomeCHK () {
char check;
printf("\n\n Seu nome esta correto? (Y/N): ");
scanf(" %c", check);
printf("\n\n");
switch (check) {
case 'Y': case 'y': return 0; break;
case 'N': case 'n': return 1; break;
default: printf("Digite apenas Y ou N.\n");
}
}
Pergunta
iMorilon
Bom pessoa, estou aprendendo C agora e estou com uma dúvida.
Estou querendo fazer uma confirmação, ele tem que repetir todo o código do início caso o usuário digite a opção "Não" no final.
Estou baseando a lógica no exemplo abaixo:
char nome[31], yn; int loop; /do { system("cls"); printf(" Digite seu nome: "); gets(nome); printf(" Seu nome e: %s \n\n", nome); printf(" Seu nome esta correto? (Y/N): "); scanf(" %c", yn); if ((yn==78) || (yn==110)) loop=1; else loop=0; } while (loop==1);Resumidamente, o que eu quero é: Se o cabra digitar que o "Nome" está incorreto, ele consiga digitar NOVAMENTE... Não posso utilizar o goto. Preciso fazer com algo diferente. Estou recebendo o erro e o fechamento do cmd. Que faço? Sei que estou errando, mas onde? EDITANDO: Tentei assim também:[code]main () { char nome[31], yn; int loop; system("cls"); printf(" Digite seu nome: "); gets(nome); printf(" Seu nome e: %s", nome); if (NomeCHK()==1) return(0); if (NomeCHK()==0) main(); system("pause"); exit(0); } int NomeCHK () { char check; printf("\n\n Seu nome esta correto? (Y/N): "); scanf(" %c", check); printf("\n\n"); switch (check) { case 'Y': case 'y': return 0; break; case 'N': case 'n': return 1; break; default: printf("Digite apenas Y ou N.\n"); } }Editado por iMorilonLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.