MajestiQ 0 Denunciar post Postado Setembro 5, 2015 Bom dia, boa tarde ou boa noite! Eu criei este código, mas está faltando criar a função para excluir os dados que serão armazenadas através da função cadastrar. Algúem poderia me ajudar? #include<stdio.h> struct Doador{ char nome[15]; char tipo_sangue[2]; int rg; double cpf; int qtd_doacao; }; typedef struct Doador doador; doador cadastrar(); void exibir(doador *w, int L); int consultar(doador *w, int L); main() { int op, i=0, x; doador v[10000]; while(1){ puts("Informe a opcao:"); puts("1-Cadastrar"); puts("2-Exibir"); puts("3-Consultar"); puts("4-Sair."); scanf("%d",&op); fflush(stdin); switch(op){ case 1: v[i]=cadastrar(); i++; break; case 2: exibir(v,i); break; case 3: x=consultar(v,i); if(x!=-1){ puts("Doador: "); puts((v+x)->nome); }else{ puts("Doador nao cadastrado."); } getchar(); break; case 4: exit(1); break; default: puts("Opcao invalida!"); } system("cls"); } system("pause"); } void exibir(doador *w, int L) { int i; system("cls"); puts("Dados dos doadores:"); for(i=0;i<L;i++) puts((w+i)->nome); getchar(); } doador cadastrar() { doador y; puts("Informe o nome do doador:"); gets(y.nome); return y; } int consultar(doador *w, int L) { char nm_cons[15]; int i,k=-1; system("cls"); puts("Informe o nome para pesquisa:"); gets(nm_cons); for(i=0;i<L;i++){ if(strcmp(nm_cons,(w+i)->nome)==0){ k=i; } } getchar(); system("cls"); return k; } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Setembro 6, 2015 Não use gets e nem dê flush na entrada padrão. Leia o tópico fixo sobre isso: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Compartilhar este post Link para o post Compartilhar em outros sites