Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Thiago72

RESOLVIDO Retornar ao Menu - Programação Estruturada C

Recommended Posts

Boa tarde amigos.

 

Estou com um problema para fazer funcionar o seguinte código estruturado. (abaixo)

O problema é que como sou novato não sei fazer com que após o cadastro ele volte ao MENU secundário ou ao MENU principal da estrutura de cadastro de clientes.

 

Alguém poderia dar uma força, uma ideia ou mesmo me ensinar o que eu devo fazer.

 

Está funcionando, eu acho, testei no Dev e no Code Blocks.

No meu pc eu tenho que compilar 2x, mas não sei porque.

 

Segue anexo, obrigado!

 

Muito obrigado!

 

Att,

 

 

 

 

ATPS Atualizada 1.txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Thiago72

 

Seguintes erros ao compilar:

 

 

216:1: warning: passing argument 1 of 'gets' from incompatible pointer type [enabled by default] gets (registros[pos].tel);
 
357:39: note: expected 'char *' but argument is of type 'int *'  _CRTIMP char* __cdecl __MINGW_NOTHROW gets (char*);
 
224:6: warning: conflicting types for 'cadastrar_f' [enabled by default] void cadastrar_f (int id, int pos) { //Função para cadastrar fornecedores.
 
123:1: note: previous implicit declaration of 'cadastrar_f' was here  cadastrar_f (idauxf, posicaof);
 
232:1: warning: passing argument 1 of 'gets' from incompatible pointer type [enabled by default] gets (registrosf[pos].telf);
 
357:39: note: expected 'char *' but argument is of type 'int *' _CRTIMP char* __cdecl __MINGW_NOTHROW gets (char*);
 
243:6: warning: conflicting types for 'cadastrar_p' [enabled by default] void cadastrar_p (int id, int pos) {
 
173:1: note: previous implicit declaration of 'cadastrar_p' was here cadastrar_p (idauxp, posicaop);
 
...
 
obs: A função gets(char *str) além de não ser recomendada, recebe um char* como parâmetro, no seu programa você está passando um int.
 
Editado por slackforgo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Boa observação, agradeço muito.

     

    Mas aqui está compilando, não sei como resolver esses outros erros, não entendo o motivo, gostaria muito de aprender a resolver estes erros, minha prova está chegando e eu não estou afinado para erros como estes, poderia me ajudar para eu estudar emcima do que voce me disser?

     

    Muito obrigado pela ajuda!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

     

    Para corrigir o erro basta colocar o protótipo das funções :

    void cadastrar_f (int id, int pos);void cadastrar_p (int id, int pos);

    E trocar int telf[15] e int tel[15] por um char, já que você lê os valores com gets()

    char tel[15];char telf [15];

    Olhe esse exemplo de menus:

    #include <stdio.h>#include <stdlib.h>/*Funcao menu */char menu(){    system("cls");    printf("1-Acao 1.0\n");    printf("2-Acao 2.0\n");    printf("0-sair\n");    printf("\n\n> ");    return(toupper(getche()));}/* funcao 1*/int acao1_0(){    char op;    printf("\n\nTeste 1-0\n");    printf("\nProximo (s/n): ");    scanf("%c%*c", &op);    if (op == 's')    {        return 1;    }    else    {        return 0;    }}/* impime uma msg*/void acao1_1(){    printf("\nBemvindo acao 1.1\n");    getche();}/*funcao 2*/int acao2_0(){    char op;    printf("\n\nTeste 2-0\n");    printf("\nProximo (s/n): ");    scanf("%c%*c", &op);    if (op == 's')    {        return 1;    }    else    {        return 0;    }}/*imprime uma msg*/void acao2_1(){    printf("\nBemvindo acao 2.1\n");    getche();}/*tarefa principal */int main(){    char op;    do    {        op = menu(); // recebe valor do menu        switch(op)        {            case '1':                 if (acao1_0() == 1)  /* se a acao1_0() retornar 1, chama a acao1_1() */                 {                    acao1_1();                     break;                 }                 else                    break;                        case '2':                if (acao2_0()== 1) /* se a acao2_0() retornar 1, chama a acao2_1() */                {                    acao2_1();                    break;                }                else                    break;        }        printf("\n");        } while(op != '0'); /* 0 para sair do menu*/    return 0;} 

    obs: Não é um dos melhores exemplo, mas da pra ter uma noção.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Este exemplo foi muito bom!

     

    Deu pra reparar alguns erros que estou cometendo, 1 dele é a falta de aspas simples nos numeros do "case", mais o programa estava rodando, é obrigado a por estas aspas simples?

     

    Agora o programa parou de funcionar e está indicando na linha onde tem um "case 2 : "

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

    Essas aspas simples nos números do case: é porque cade número é do tipo char e não do tipo int.

    Se o menu for do tipo int (igual no seu código), não precisa das aspas simples...

    int menu(){    int op;    printf("\n");    printf("1-Acao 1.0\n");    printf("2-Acao 2.0\n");    printf("0-sair\n");    printf("\n\n> ");    scanf("%d", &op);    return op;}

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @slackforgo

     

    Consegui fazer rodar o programa novamente.

    Mas meu amigo, ta difícil fazer com que após cadastrar um cliente, fornecedor ou produto, ele retorne ao Menu principal ou ao menu secundario.

    Não sei fazer essa lógica, pode me ajudar?

    #include <stdio.h>#include <stdlib.h>struct tipo_cadastro { // Struct de cadastro de clientes. int id; char nome [50]; char end [50]; char tel[15]; int vazio; } registros [10]; struct tipo_fornecedores { // Struct de cadastro de fornecedores. int idf; char nomef [50]; char endf [50]; char telf [15]; int vaziof; } registrosf [10]; struct tipo_produtos { //Struct de cadastro de Produtos. int idp; char nomep [100]; char marcap [50]; char anoprod [4]; int vaziop; } registrosp[10];void cadastrar (int id, int pos);void consultar ();int relatorio ();int verifica_pos ();int verifica_id (int id);int verifica_pos ();void excluir ();void cadastrar_f (int id, int pos);void cadastrar_p (int id, int pos);main () { // Inicio do programa.int i;printf ("Programa Thiago \n\n");printf ("           ____Menu____\n\n");printf ("1. Clientes \n2. Fornecedores \n3.Produtos \n\n");printf ("Digite o numero da opcao desejada: ");scanf ("%d", &i);system ("cls");switch(i){ case 1:{    printf("\n\n___Menu Clientes___\n\n");    printf ("1. Cadastrar\n 2. Consultar\n 3. Excluir\n 4. Sair\n\n  Opcao: "); // Menu Clientesint op=0, posicao, idaux, retorno; while (op != 5) {scanf ("%d", &op);system ("cls");switch (op) {case 1: { //Cadastrar.posicao = verifica_pos ();if (posicao !=-1) {printf ("\n Entre com o ID do Cliente: ");scanf ("%d", &idaux);fflush (stdin);retorno = verifica_id (idaux);if (retorno ==1)cadastrar (idaux, posicao);elseprintf ("\n ID Já Existente!\n");}elseprintf ("\n Nao e possivel realizar mais cadastros!\n");break;}case 2: { //Consultar.consultar ();break;}case 3: {excluir ();break;}case 4: { printf ("\n Obriagdo por usar este programa, Tchau!\n\n"); getchar (); break;default:printf ("Opcao Invalida!");break;}}} case 2: { //MENU FORNECEDORES !!! printf ("__ _-_Menu Fornecedores_ _-__"); printf ("\n\n1. Novo Fornecedor\n 2. Consultar Fornecedor\n 3. Excluir\n 4. Sair\n\n  Opcao: "); // Fornecedoresint opf=0, posicaof, idauxf, retornof; while (opf != 5) {scanf ("%d", &opf);system ("cls");switch (opf) {case 1: { //Cadastrar.posicaof = verifica_pos ();if (posicaof !=-1) {printf ("\n Entre com o ID do Fornecedor: ");scanf ("%d", &idauxf);fflush (stdin);retornof = verifica_id (idauxf);if (retornof ==1)cadastrar_f (idauxf, posicaof);elseprintf ("\n ID Já Existente!\n");}elseprintf ("\n Nao e possivel realizar mais cadastros!\n");break;}case 2: { //Consultar.consultar ();break;}case 3: {excluir ();break;}case 4: { printf ("\n Obriagdo por usar este programa, Tchau!\n\n"); getchar (); break;default:printf ("Opcao Invalida!");break;}}} }} case 3: { //Inicio produto. printf ("__ _-_Menu Produtos_ _-__"); printf ("\n\n 1. Cadastrar Produto \n 2. Busca Produto \n 3. Excluir \n 4. Sair \n\n  Opcao: "); // Fornecedoresint opp=0, posicaop, idauxp, retornop; while (opp != 5) {scanf ("%d", &opp);system ("cls");switch (opp) {case 1: { //Cadastrar Produto.posicaop = verifica_pos ();if (posicaop !=-1) {printf ("\n Entre com o CODIGO do Protudo: ");scanf ("%d", &idauxp);fflush (stdin);retornop = verifica_id (idauxp);if (retornop ==1)cadastrar_p (idauxp, posicaop);elseprintf ("\n CODIGO já Existente!\n");}elseprintf ("\n Nao e possivel cadastrar mais produtos!\n");break;}case 2: { //Consultar.consultar ();break;}case 3: {excluir ();break;}case 4: { printf ("\n Obriagdo por usar este programa, Tchau!\n\n"); getchar (); break;default:printf ("Opcao Invalida!");break;  // Fim menu Produto  break; } }}}}} //Fim do MAIN ()void cadastrar (int id, int pos) { //Função para cadastrar clientes.pos=verifica_pos();registros[pos].id=id;printf ("\n Nome: \n");gets (registros[pos].nome);printf ("\n Endereco: \n");gets (registros[pos].end);printf ("\n Telefone de Contato: \n");gets (registros[pos].tel);registros[pos].vazio=1;printf ("\n Cadastro Realizado com Sucesso!\n\n");getchar ();getchar ();system ("cls");} //Final da função cadastrar clientes.void cadastrar_f (int id, int pos) { //Função para cadastrar fornecedores.pos=verifica_pos();registrosf[pos].idf=id;printf ("\n Nome Fornecedor: \n");gets (registrosf[pos].nomef);printf ("\n Endereco: \n");gets (registrosf[pos].endf);printf ("\n Telefone de Contato (somente numeros): \n");gets (registrosf[pos].telf);registrosf[pos].vaziof=1;printf ("\n Cadastro Realizado com Sucesso!\n\n");getchar ();getchar ();system ("cls");} //Final da função cadastrar fornecedores// Inicio da função para cadastrar produtos.void cadastrar_p (int id, int pos) {pos=verifica_pos();registrosp[pos].idp=id;printf ("\n Nome do Produto: \n");gets (registrosp[pos].nomep);printf ("\n Marca: \n");gets (registrosp[pos].marcap);printf ("\n Ano de fabricação: \n");gets (registrosp[pos].anoprod);registrosp[pos].vaziop=1;printf ("\n Cadastro Realizado com Sucesso!\n\n");getchar ();getchar ();system ("cls");} //Final da função para cadastrar produtos.//Inicio da função consultar clientes.void consultar () {int cont=0, id;printf ("\nEntre com o ID\n");scanf ("%d", &id);system ("cls");while (cont<=13) {if (registros[cont]. id==id) {if (registros[cont]. vazio==1) {printf ("\n Nome: %s \n", registros[cont].nome);printf ("\n Endereco: %s \n", registros[cont].end);printf ("\n Telefone: %d \n", registros[cont].tel);getchar ();printf ("\n");system ("pause");system ("cls");break;}}cont++;if (cont>13)printf ("\n Codigo nao encontrado! \n");}} // Fim da função consultar clientes//Inicio da função consultar fornecedores.void consultarf () {int cont=0, id;printf ("\nEntre com o ID\n");scanf ("%d", &id);system ("cls");while (cont<=13) {if (registrosf[cont]. idf==id) {if (registrosf[cont]. vaziof==1) {printf ("\n Nome: %s \n", registrosf[cont].nomef);printf ("\n Endereco: %s \n", registrosf[cont].endf);printf ("\n Telefone: %d \n", registrosf[cont].telf);getchar ();printf ("\n");system ("pause");system ("cls");break;}}cont++;if (cont>13)printf ("\n Codigo nao encontrado! \n");}} // Fim da função consultar fornecedores//Inicio da função consultar produtos.void consultarp () {int cont=0, id;printf ("\nEntre com o ID\n");scanf ("%d", &id);system ("cls");while (cont<=13) {if (registrosf[cont]. idf==id) {if (registrosf[cont]. vaziof==1) {printf ("\n Nome: %s \n", registrosf[cont].nomef);printf ("\n Endereco: %s \n", registrosf[cont].endf);printf ("\n Telefone: %d \n", registrosf[cont].telf);getchar ();printf ("\n");system ("pause");system ("cls");break;}}cont++;if (cont>13)printf ("\n Codigo nao encontrado! \n");}} // Fim da função consultar produtos.//Função verifica posiçãoint verifica_pos () {int cont = 0;while (cont<=100) {if (registros[cont].vazio==0)return (cont);cont++;}return (-1);}//Função zerar.void zerar () {int cont;for (cont = 0; cont<=13; cont++)registros[cont].vazio = 0;}//Função verifica IDint verifica_id (int id) {int cont = 0;while (cont<=13) {if (registros[cont].id==id)return (0);cont++;}return (1);}//Função excluir.void excluir () {int id, cont=0;char resp;printf ("\n Entre com o codigo que deseja excluir: \n");scanf ("%d", &id);while (cont<=13) {if (registros[cont].id==id)if (registros[cont].vazio==1) {printf ("\n Nome: %s \n", registros[cont].nome);printf ("\n Endereco: %s \n", registros[cont].end);printf ("\n Telefone: %d \n", registros[cont].tel);getchar ();printf ("\n Deseja realmente excluir este cliente? S/N: ");scanf ("%c", &resp);if (resp=='S' ||resp=='s') {registros[cont].vazio=0;printf ("\n Excluído!\n");break;}else if (resp=='N'||resp=='n') {printf ("Exclusao Cancelada!");break;}}cont++;if (cont>13)printf ("\n Codigo nao encontrado!\n");}getchar ();system ("pause");system ("cls");}
    Editado por Thiago72

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

    Seu código não está indentado isso dificulta a manutenção. 

     

    -> Esse exemplo que eu fiz, está todo comentado e vai te ajudar a entender como fiz ... Ele possui menu e submenu.

     

    Código:

    #include <stdio.h>#include <stdlib.h>/* struct para cadastro de clientes */typedef struct cadastro{    int id;    char nome[20];    char end[50];    char tel[15];}cadastro;/*struct para dacastro de funcionario */typedef struct cadastrof{    int id;    char nome[20];    char end[50];    char tel[15];}cadastrof;//variaveis globaisint i = 0, i2 = 0; //contcadastro cad[10]; //cadastrar maximo 10 clientescadastrof cadf[10]; //cadastrar maximo 10 funcionario/* Funcao menu(), retorna um char com a opcao escolhida */char menu(){    system("cls");    printf("------ Menu ------\n");    printf("1) Cliente\n");    printf("2) Funcionario\n");    printf("9) Sair\n");    printf("\n\n> ");    return toupper(getche());}/*Funcao cadastrar(), cadastra cliente */void cadastrar(){    printf("\n\n");    if (i == 10 || i >10) //se i igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Numero de cadastro cheio !\n");        return;    }    else    {        printf("ID: ");        scanf("%d", &cad[i].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cad[i].nome);        printf("Endereco: ");        fflush(stdin);        gets(cad[i].end);        printf("Tel: ");        fflush(stdin);        gets(cad[i].tel);    }    i++; //contador}/*Funcao consultar(), consulta cliente pelo id*/void consultar(){    int j, id;    printf("\n");    printf("Digite id: ");    scanf("%d", &id);    for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            printf("\nID:%d \t NOME:%s \t END:%s \t TEL:%s\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            break;        }    }    getche(); //pause}/*Funcao cadastrarf(), cadastra funcionario */void cadastrarf(){    printf("\n\n");    if (i2 == 10 || i2 > 10) //se i2 igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Numero de cadastro cheio !\n");        return;    }    else    {        printf("ID: ");        scanf("%d", &cadf[i2].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cadf[i2].nome);        printf("Endereco: ");        fflush(stdin);        gets(cadf[i2].end);        printf("Tel: ");        fflush(stdin);        gets(cadf[i2].tel);    }    i2++; //contador}/*Funcao consultarf(), consulta funcionario pelo id*/void consultarf(){    int j, id;    printf("\n");    printf("Digite id: ");    scanf("%d", &id);    for (j=0; j<=i2; j++)    {        if (cadf[j].id == id) //procura pelo id do func        {            printf("\nID:%d \t NOME:%s \t END:%s \t TEL:%s\n", cadf[j].id, cadf[j].nome, cadf[j].end, cadf[j].tel);  //imprime na tela os valores do funcionario, consultado pelo id e sai do laço            break;        }    }    getche(); //pause}/*funcao cliente(), menu com as funcoes */void cliente(){    char op;    do    {        system("cls");        printf("------ Sub-Menu 1.1 ------\n");        printf("1) Cadastrar cliente\n");        printf("2) Consultar cliente\n");        printf("9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        switch(op)        {            case '1':                cadastrar(); break;            case '2':                consultar(); break;        }        }while (op != '9');    }/*funcao funcionario, menu com as funcoes */void funcionario(){    char op;    do    {        system("cls");        printf("------ Sub-Menu 2.1 ------\n");        printf("1) Cadastrar funcionario\n");        printf("2) Consultar funcionario\n");        printf("9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        switch(op)        {            case '1':                cadastrarf(); break;            case '2':                consultarf(); break;        }        }while (op != '9');    }/*Funcao main */int main(){    char op;    do    {        op = menu(); //chama a funcao menu retornando um char armazenando na variavel op        switch(op)        {            case '1':                cliente(); break; //funcao menu cliente            case '2':                 funcionario(); break; //funcao menu funcionario        }    } while (op != '9'); //9 sai do menu    return 0;} 

    Tente implementar esse exemplo (e melhorando) no seu código mesmo que tenha refazê-lo desde o começo.

     

    obs: Não é recomendado usar a função gets() e fflush(stdin). Usei apenas para ficar parecido com o seu código e ficar fácil a leitura.

     

     

    Abraço.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @slackforgo

     

    Show!

    Vou estudar sua estrutura!

     

    Pra não usar o gets eu teria que usa o scanf?

     

    E pode me orientar a direfença de usar só o "struct" para o "typedef struct" nunca tinha ouvido falar, e não aprendi ainda a usar esse comando.

     

    Muito obrigado!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

     

    Em vez de usar o gets() você pode usar o fgets(). Ex:

    char str[10];fgets(str,10,stdin);

    Sobre o typedef, dê uma olhada:

     

    http://www.ime.usp.br/~pf/algoritmos/aulas/footnotes/typedef.html e http://www.tiexpert.net/programacao/c/typedef.php

    Editado por slackforgo

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • É meu amigo acho que esta saíndo, ja evolui bastante do entendimento e no programa.

     

    Agora estou tentando editar um cadastro, mas não esta salvando as informações emcima das informaçoes descritas.

     

    Declarei a função:

    void Editar(int EditID);void Editar(int EditID);

    Fiz um "if" dentro da função de consultar o cadastro, e criei a variavél char sel (de seleção).

    E se apertado o 'e' ele chama a função Editar(id)

    void consultar(){    int j, id;    char sel;        printf("\n\n");    printf("Digite ID do cliente: ");    scanf("%d", &id);    for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            printf("\nId:%d \t\nNome:%s \t\nEndereco:%s \t\nTelefone:%s\n\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            printf("E - Editar\n");            sel=getche();            if(sel=='e');            {                Editar(id);            }            break;        }    }    getche(); //pause}

    Aí depois do main existe a estrutura da função "void Editar (int EditID)"

    void Editar(int EditID){    char selA;    while(true)    {        system("cls");        printf("\nId:%d \t\n 1 - Nome:%s \t\n 2 - Endereco:%s \t\n 3 - Telefone:%s\n\n4 - Sair\n\n", cad[EditID].id, cad[EditID].nome, cad[EditID].end, cad[EditID].tel);        selA=getche();        if(selA=='1')        {            printf("Novo Nome: ");            fflush(stdin);            gets(cad[EditID].nome);        }        else if(selA=='2')        {            printf("Novo Endereço: ");            fflush(stdin);            gets(cad[EditID].end);        }        else if(selA=='3')        {            printf("Novo Telefone: ");            fflush(stdin);            gets(cad[EditID].tel);        }        else if(selA=='4')        {            return;        }    }}

    Da pra reparar que quando muda pra tela de editar, o ID aparede como 0, sendo que o cadastro ja começa do 1.

    Segue o código completo de como está meu programa:

    Muito obrigado pela ajuda @slackforgo

    #include <stdio.h>#include <stdlib.h>#include <stdbool.h>/* struct para cadastro de clientes */typedef struct cadastro{    int id;    char nome[20];    char end[50];    char tel[15];}cadastro;/*struct para dacastro de fornecedores */typedef struct cadastrof{    int id;    char nome[20];    char end[50];    char tel[15];}cadastrof;/*struct para dacastro de produto */typedef struct cadastrop{    int cod;    char produto[20];    char marca[30];    char modelo[30];}cadastrop;//variaveis globaisint i = 0, i2 = 0, i3 = 0; //contcadastro cad[10]; //cadastrar maximo 10 clientescadastrof cadf[10]; //cadastrar maximo 10 funcionariocadastrop cadp[10]; //cadastrar maximo 10 funcionariovoid Editar(int EditID); //editar clientesvoid Editar(int EditIDF); //editar fornecedoresvoid Editar(int EditIDP); //editar produtos/* Funcao menu(), retorna um char com a opcao escolhida */char menu(){    system("cls");    printf("\n((((___ Menu ___))))\n");    printf("\n\n1) Clientes\n");    printf("2) Fornecedores\n");    printf("3) Produtos\n");    printf("\n9) Sair\n");    printf("\n\n> ");    return toupper(getche());}/*Funcao cadastrar(), cadastra cliente */void cadastrar(){    printf("\n\n");    if (i == 10 || i >10) //se i igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel cadastrar mais clientes!\n");        return;    }    else    {        cad[i].id = (i+1);        printf("Id: %d\n", cad[i].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cad[i].nome);        printf("Endereco: ");        fflush(stdin);        gets(cad[i].end);        printf("Tel: ");        fflush(stdin);        gets(cad[i].tel);    }    i++; //contador}/*Funcao consultar(), consulta cliente pelo id*/void consultar(){    int j, id;    char sel;        printf("\n\n");    printf("Digite ID do cliente: ");    scanf("%d", &id);    for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            printf("\nId:%d \t\nNome:%s \t\nEndereco:%s \t\nTelefone:%s\n\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            printf("E - Editar\n");            sel=getche();            if(sel=='e');            {                Editar(id);            }            break;        }    }    getche(); //pause}/*Funcao cadastrarf(), cadastra fornecedor */void cadastrarf(){    printf("\n\n");    if (i2 == 10 || i2 > 10) //se i2 igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel adicionar mais fornecedores!\n");        return;    }    else    {        cadf[i2].id = (i2+1);        printf("Id: %d\n", cadf[i2].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cadf[i2].nome);        printf("Endereco: ");        fflush(stdin);        gets(cadf[i2].end);        printf("Tel: ");        fflush(stdin);        gets(cadf[i2].tel);    }    i2++; //contador}/*Funcao consultarf(), consulta fornecedor pelo id*/void consultarf(){    int j, id;	char sel;	    printf("\n");    printf("Digite ID do fornecedor: ");    scanf("%d", &id);    for (j=0; j<=i2; j++)    {        if (cadf[j].id == id) //procura pelo id do fornecedor        {            printf("\nID:%d \t \nNome:%s \t \nEnedereco:%s \t \nTelefone:%s\n", cadf[j].id, cadf[j].nome, cadf[j].end, cadf[j].tel);  //imprime na tela os valores do fornecedor, consultado pelo id e sai do laço.            printf("E - Editar\n");            sel=getche();            if(sel=='e');            {                Editar(id);            }			break;        }    }    getche(); //pause}/*Funcao cadastrarp(), cadastra produto */void cadastrarp(){    printf("\n\n");    if (i3 == 10 || i3 > 10) //se i3 igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel cadastrar mais produtos!\n");        return;    }    else    {        cadp[i3].cod = (i3+1);        printf("Codigo: %d\n", cadp[i3].cod);        printf("Produto: ");        fflush(stdin);        scanf("%s", cadp[i3].produto);        printf("Marca: ");        fflush(stdin);        gets(cadp[i3].marca);        printf("Modelo: ");        fflush(stdin);        gets(cadp[i3].modelo);    }    i3++; //contador}/*Funcao consultarp(), consulta produto pelo id*/void consultarp(){    int j, id;    printf("\n");    printf("Digite CODIGO do produto: ");    scanf("%d", &id);    for (j=0; j<=i3; j++)    {        if (cadp[j].cod == id) //procura pelo id do fornecedor        {            printf("\nCodigo:%d \t \nProduto:%s \t \nMarca:%s \t \nModelo:%s\n", cadp[j].cod, cadp[j].produto, cadp[j].marca, cadp[j].modelo);  //imprime na tela os valores do fornecedor, consultado pelo id e sai do laço.            break;        }    }    getche(); //pause}/*funcao cliente(), menu com as funcoes */void cliente(){    char op;    do    {        system("cls");        printf("\n((((___ Clientes ___))))\n");        printf("\n\n1) Cadastrar cliente\n");        printf("2) Consultar cliente\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        system("cls");        printf("((((___ Cadastrar Novo Cliente ___))))\n");        switch(op)        {            case '1':                cadastrar(); break;            case '2':                consultar(); break;        }    }while (op != '9');}/*funcao funcionario, menu com as funcoes */void funcionario(){    char op;    do    {        system("cls");        printf("((((___ Fornecedores ___))))\n");        printf("1) Cadastrar fornecedor\n");        printf("2) Consultar fornecedor\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        switch(op)        {            case '1':                cadastrarf(); break;            case '2':                consultarf(); break;        }    }while (op != '9');}/*funcao produto(), menu com as funcoes */void produto(){    char op;    do    {        system("cls");        printf("((((___ Produtos___))))\n");        printf("1) Cadastrar produto\n");        printf("2) Consultar produto\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        switch(op)        {            case '1':                cadastrarp(); break;            case '2':                consultarp(); break;        }    }while (op != '9');}/*Funcao main */int main(){    char op;    do    {        op = menu(); //chama a funcao menu retornando um char armazenando na variavel op        switch(op)        {            case '1':                cliente(); break; //funcao menu cliente            case '2':                funcionario(); break; //funcao menu funcionario            case '3':                produto(); break;//funcao menu produto        }    } while (op != '9'); //9 sai do menu        printf("\n\n");        printf("(((((((__________)))))");        printf("\n\n");    return 0;}//Fim do mainvoid Editar(int EditID){    char selA;    while(true)    {        system("cls");        printf("\nId:%d \t\n 1 - Nome:%s \t\n 2 - Endereco:%s \t\n 3 - Telefone:%s\n\n4 - Sair\n\n", cad[EditID].id, cad[EditID].nome, cad[EditID].end, cad[EditID].tel);        printf(">");		selA=getche();        if(selA=='1')        {            printf("\n\nNovo Nome: ");            fflush(stdin);            gets(cad[EditID].nome);        }        else if(selA=='2')        {            printf("\n\nNovo Endereço: ");            fflush(stdin);            gets(cad[EditID].end);        }        else if(selA=='3')        {            printf("\n\nNovo Telefone: ");            fflush(stdin);            gets(cad[EditID].tel);        }        else if(selA=='4')        {            return;        }    }}

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

     

    Você está passando o id como parâmetro e não a posição do vetor.

    void consultar(){    int j, id;    char sel;        printf("\n\n");    printf("Digite ID do cliente: ");    scanf("%d", &id);     for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            printf("\nId:%d \t\nNome:%s \t\nEndereco:%s \t\nTelefone:%s\n\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            printf("E - Editar\n");            sel=getche();            if(sel=='e');            {                Editar(j); // voce colocoud id, e sim j que e a posicao do cliente no cad[]...            }            break;        }    }     getche(); //pause}

    Não tenho como testar aqui, poste o resultado ! 

     

    Abraço.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • ráa Garoto!!

     

    É isso mesmo!!!

     

    Muito obrigado @slackforgo!!

     

    Sua ajuda foi impressindivel!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Amigo @slackforgo,

     

    Lá vai eu pedir mais uma de suas boa orientações.

    Estou tentando incrementar meu programa com a função excluir, criei então a Função

    void Excluir (int ID); //Função excluir

    Chamo a função dentro da função de consultar:

    /*Funcao consultar(), consulta cliente pelo id*/void consultar(){    int j, id;    char sel, sel2;    system ("cls");    printf("\n\n");    printf("Digite ID do cliente: ");    scanf("%d", &id);    for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            if (cad[j].excluido != 1){                            printf("\nId:%d \t\nNome: %s \t\nEndereco: %s \t\nTelefone: %s \t\nCPF: %s \t\n\n Status: %s \n\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel, cad[j].cpf, cad[j].ai); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            printf("E - Editar\n D - Deletar\n");            sel=getche();                if (sel=='e'||sel=='E');            {                Editar(j);            }                if (sel=='d'||sel=='D');            {                Excluir(j);            }            break;        }         if (cad[j].excluido == 1);            {                system("cls");                printf("Esse cadastro ja foi excluido!!");                break;            }        }        }    getche(); //pause}

    E então a estrutura da função:

    void Excluir(int ID) //Função para editar clientes{    char sn;    while(true)    {        if(cad[ID].excluido!= 1){        system("cls");        printf("\nId:%d \t\n 1 - Nome: %s \t\n 2 - Endereco: %s \t\n 3 - Telefone: %s \t\n 4 - CPF: %s \t\n 5 - Status %s \t\n 9 - Sair\n\n", cad[ID].id, cad[ID].nome, cad[ID].end, cad[ID].tel, cad[ID].cpf, cad[ID].ai);        printf("Tem certeza que deseja excluir? (s/n)");        printf(">");		sn=getche();        if(sn=='s'||sn=='S')        {            cad[ID].excluido=1;            system("cls");            printf("\nExcluido com sucesso!");            break;        }        else if(sn=='n'||sn=='N')        {        }        }    }}

    Agora o problema que acontece é o seguinte.

     

    Está excluindo normal, porém quando consulto e aperto "D" para excluir ele antes vai para a função "Editar", sem eu apertar "E".

     

    Sabe me dizer o que estou fazendo de errado?

     

    Segue o meu codigo completo caso queira compilar.

    #include <stdio.h>#include <stdlib.h>#include <stdbool.h>/* struct para cadastro de clientes */typedef struct cadastro{    int id;    char nome[50];    char end[50];    char tel[11];    char cpf[11];    char ai[1];    int excluido;}cadastro;/*struct para dacastro de fornecedores */typedef struct cadastrof{    int id;    char nome[50];    char end[50];    char tel[11];    char cnpj[20];    char ai[1];}cadastrof;/*struct para dacastro de produto */typedef struct cadastrop{    int cod;    char produto[20];    char marca[30];    char modelo[30];    char ano[4];    char estoque[1];}cadastrop;//variaveis globaisint i = 0, i2 = 0, i3 = 0; //contcadastro cad[10]; //cadastrar maximo 10 clientescadastrof cadf[10]; //cadastrar maximo 10 funcionariocadastrop cadp[10]; //cadastrar maximo 10 funcionariovoid Editar(int EditID); //editar clientesvoid EditarF(int EditIDF); //editar fornecedoresvoid EditarP(int EditIDP); //editar produtosvoid Excluir (int ID); //Função excluir/* Funcao menu(), retorna um char com a opcao escolhida */char menu(){    system("cls");    printf("\n((((___ Menu ___))))\n");    printf("\n\n1) Clientes\n");    printf("2) Fornecedores\n");    printf("3) Produtos\n");    printf("\n9) Sair\n");    printf("\n\n> ");    return toupper(getche());}/*Funcao cadastrar(), cadastra cliente */void cadastrar(){    printf("\n\n");    if (i == 10 || i >10) //se i igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel cadastrar mais clientes!\n");        return;    }    else    {        cad[i].id = (i+1);        printf("Id: %d\n", cad[i].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cad[i].nome);        printf("Endereco: ");        fflush(stdin);        gets(cad[i].end);        printf("Tel: ");        fflush(stdin);        gets(cad[i].tel);        printf("CPF: ");        fflush(stdin);        gets(cad[i].cpf);        printf("\n\n Digite \"A\" para ATIVO ou \"I\" para INATIVO: ");        fflush(stdin);        gets(cad[i].ai);        printf ("\n\nCliente cadastrado com sucesso!");        getchar ();    }    i++; //contador}/*Funcao consultar(), consulta cliente pelo id*/void consultar(){    int j, id;    char sel, sel2;    system ("cls");    printf("\n\n");    printf("Digite ID do cliente: ");    scanf("%d", &id);    for (j=0; j<=i; j++)    {        if (cad[j].id == id) //procura id do cliente        {            if (cad[j].excluido != 1){                            printf("\nId:%d \t\nNome: %s \t\nEndereco: %s \t\nTelefone: %s \t\nCPF: %s \t\n\n Status: %s \n\n", cad[j].id, cad[j].nome, cad[j].end, cad[j].tel, cad[j].cpf, cad[j].ai); //imprime na tela os valores do cliente, consultado pelo id e sai do laço            printf("E - Editar\n D - Deletar\n");            sel=getche();                if (sel=='e'||sel=='E');            {                Editar(j);            }                if (sel=='d'||sel=='D');            {                Excluir(j);            }            break;        }         if (cad[j].excluido == 1);            {                system("cls");                printf("Esse cadastro ja foi excluido!!");                break;            }        }        }    getche(); //pause}/*Funcao cadastrarf(), cadastra fornecedor */void cadastrarf(){    printf("\n\n");    if (i2 == 10 || i2 > 10) //se i2 igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel adicionar mais fornecedores!\n");        return;    }    else    {        cadf[i2].id = (i2+1);        printf("Id: %d\n", cadf[i2].id);        printf("Nome: ");        fflush(stdin);        scanf("%s", cadf[i2].nome);        printf("Endereco: ");        fflush(stdin);        gets(cadf[i2].end);        printf("Tel: ");        fflush(stdin);        gets(cadf[i2].tel);        printf("CNPJ: ");        fflush(stdin);        gets(cadf[i].cnpj);        printf("\n\n Digite \"A\" para ATIVO ou \"I\" para INATIVO: ");        fflush(stdin);        gets(cad[i].ai);        printf ("\n\nFornecedor cadastrado com sucesso!");        getchar ();    }    i2++; //contador}/*Funcao consultarf(), consulta fornecedor pelo id*/void consultarf(){    int j, id;	char sel;    printf("\n");    printf("Digite ID do fornecedor: ");    scanf("%d", &id);    for (j=0; j<=i2; j++)    {        if (cadf[j].id == id) //procura pelo id do fornecedor        {            printf("\nID:%d \t \nNome: %s \t \nEnedereco: %s \t \nTelefone: %s \t\nCNPJ: %s \t\n\nStatus: %s \n\n", cadf[j].id, cadf[j].nome, cadf[j].end, cadf[j].tel, cadf[j].cnpj, cadf[j].ai);  //imprime na tela os valores do fornecedor, consultado pelo id e sai do laço.            printf("\nE - Editar\n");            sel=getche();            if(sel=='e');            {                EditarF(j);            }			break;        }    }    getche(); //pause}/*Funcao cadastrarp(), cadastra produto */void cadastrarp(){    printf("\n\n");    if (i3 == 10 || i3 > 10) //se i3 igual a 10, sai do programa, maximo de cadastro 10... (0,1,2,3,4,5,6,7,8,9)    {        printf("Nao e possivel cadastrar mais produtos!\n");        return;    }    else    {        cadp[i3].cod = (i3+1);        printf("Codigo: %d\n", cadp[i3].cod);        printf("Produto: ");        fflush(stdin);        scanf("%s", cadp[i3].produto);        printf("Marca: ");        fflush(stdin);        gets(cadp[i3].marca);        printf("Modelo: ");        fflush(stdin);        gets(cadp[i3].modelo);        printf("Ano: ");        fflush(stdin);        gets(cadp[i].ano);        printf("\n\n Digite \"S\" se houver Estoque ou \"N\" caso nao houver Estoque: ");        fflush(stdin);        gets(cadp[i].estoque);        printf ("\n\nProduto cadastrado com sucesso!");        getchar ();    }    i3++; //contador}/*Funcao consultarp(), consulta produto pelo id*/void consultarp(){    int j, id;    char sel;    printf("\n");    printf("Digite CODIGO do produto: ");    scanf("%d", &id);    for (j=0; j<=i3; j++)    {        if (cadp[j].cod == id) //procura pelo id do fornecedor        {            printf("\nCodigo:%d \t \nProduto:%s \t \nMarca:%s \t \nModelo:%s \t\nAno: %s \t\n\nPossui Estoque? %s \n\n", cadp[j].cod, cadp[j].produto, cadp[j].marca, cadp[j].modelo, cadp[j].ano, cadp[j].estoque);  //imprime na tela os valores do fornecedor, consultado pelo id e sai do laço.            printf("\nE - Editar\nD - Deletar\n");            sel=getche();            if(sel=='e');            {                EditarP(j);            }            if(sel=='d');            {                Excluir(j);            }            break;        }    }    getche(); //pause}/*funcao cliente(), menu com as funcoes */void cliente(){    char op;    do    {        system("cls");        printf("\n((((___ Clientes ___))))\n");        printf("\n\n1) Cadastrar cliente\n");        printf("2) Consultar cliente\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        system("cls");        printf("\n((((___ Cadastrar Novo Cliente ___))))\n");        switch(op)        {            case '1':                cadastrar(); break;            case '2':                consultar(); break;        }    }while (op != '9');}/*funcao funcionario, menu com as funcoes */void funcionario(){    char op;    do    {        system("cls");        printf("\n((((___ Fornecedores ___))))\n");        printf("\n\n1) Cadastrar fornecedor\n");        printf("2) Consultar fornecedor\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        system("cls");        printf("\n((((___ Cadastrar Novo Fornecedor ___))))\n");        switch(op)        {            case '1':                cadastrarf(); break;            case '2':                consultarf(); break;        }    }while (op != '9');}/*funcao produto(), menu com as funcoes */void produto(){    char op;    do    {        system("cls");        printf("\n((((___ Produtos___))))\n");        printf("\n\n1) Cadastrar produto\n");        printf("2) Consultar produto\n");        printf("\n9) Sair\n");        printf("\n\n> ");        op = toupper(getche());        system("cls");        printf("\n((((___ Cadastrar Novo Produto ___))))\n");        switch(op)        {            case '1':                cadastrarp(); break;            case '2':                consultarp(); break;        }    }while (op != '9');}/*Funcao main */int main(){    char op;    do    {        op = menu(); //chama a funcao menu retornando um char armazenando na variavel op        switch(op)        {            case '1':                cliente(); break; //funcao menu cliente            case '2':                funcionario(); break; //funcao menu funcionario            case '3':                produto(); break;//funcao menu produto        }    } while (op != '9'); //9 sai do menu        printf("\n\n");        printf("(((((((__________)))))");        printf("\n\n");    return 0;}//Fim do mainvoid Editar(int EditID) //Função para editar clientes{    char selA;    while(true)    {        system("cls");        printf("\nId:%d \t\n 1 - Nome: %s \t\n 2 - Endereco: %s \t\n 3 - Telefone: %s \t\n 4 - CPF: %s \t\n 5 - Status %s \t\n 9 - Sair\n\n", cad[EditID].id, cad[EditID].nome, cad[EditID].end, cad[EditID].tel, cad[EditID].cpf, cad[EditID].ai);        printf("Digite o numero da opcao que deseja editar:");        printf(">");		selA=getche();        if(selA=='1')        {            printf("\n\nNovo Nome: ");            fflush(stdin);            gets(cad[EditID].nome);        }        else if(selA=='2')        {            printf("\n\nEditar Endereço: ");            fflush(stdin);            gets(cad[EditID].end);        }        else if(selA=='3')        {            printf("\n\nEditar Telefone: ");            fflush(stdin);            gets(cad[EditID].tel);        }        else if(selA=='4')        {            printf("\n\nEditar CPF: ");            fflush(stdin);            gets(cad[EditID].cpf);        }        else if(selA=='5')        {            printf("\n\nEditar Status: ");            fflush(stdin);            gets(cad[EditID].ai);        }        else if(selA=='9')        {            return;        }    }}void EditarF(int EditIDF) //Função para editar fornecedores{    char selA;    while(true)    {        system("cls");        printf("\nId:%d \t\n 1 - Nome: %s \t\n 2 - Endereco: %s \t\n 3 - Telefone: %s \t\n 4 - CNPJ: %s \t\n 5 - Status: %s \t\n9 - Sair\n\n", cadf[EditIDF].id, cadf[EditIDF].nome, cadf[EditIDF].end, cadf[EditIDF].tel, cadf[EditIDF].cnpj, cadf[EditIDF].ai);        printf(">");		selA=getche();        if(selA=='1')        {            printf("\n\nEditar Nome: ");            fflush(stdin);            gets(cadf[EditIDF].nome);        }        else if(selA=='2')        {            printf("\n\nEditar Endereço: ");            fflush(stdin);            gets(cadf[EditIDF].end);        }        else if(selA=='3')        {            printf("\n\nEditar Telefone: ");            fflush(stdin);            gets(cadf[EditIDF].tel);        }        else if(selA=='4')        {            printf("\n\nEditar CNPJ: ");            fflush(stdin);            gets(cadf[EditIDF].cnpj);        }        else if(selA=='5')        {            printf("\n\nEditar Status: ");            fflush(stdin);            gets(cadf[EditIDF].ai);        }        else if(selA=='9')        {            return;        }    }}void EditarP(int EditIDP) //Função para editar produtos{    char selA;    while(true)    {        system("cls");        printf("\nId:%d \t\n\n 1 - Produto: %s \t\n 2 - Marca: %s \t\n 3 - Modelo: %s \t\n 4 - Ano: %s \t\n 9 - Sair\n\n", cadp[EditIDP].cod, cadp[EditIDP].produto, cadp[EditIDP].marca, cadp[EditIDP].modelo,cadp[EditIDP].ano, cadp[EditIDP].estoque);        printf(">");		selA=getche();        if(selA=='1')        {            printf("\n\nEditar Produto: ");            fflush(stdin);            gets(cadp[EditIDP].produto);        }        else if(selA=='2')        {            printf("\n\nEditar Endereço: ");            fflush(stdin);            gets(cadp[EditIDP].marca);        }        else if(selA=='3')        {            printf("\n\nEditar Telefone: ");            fflush(stdin);            gets(cadp[EditIDP].modelo);        }        else if(selA=='4')        {            printf("\n\nEditar Ano: ");            fflush(stdin);            gets(cadp[EditIDP].ano);        }        else if(selA=='5')        {            printf("\n\nEditar Status de Estoque: ");            fflush(stdin);            gets(cadp[EditIDP].estoque);        }        else if(selA=='9')        {            return;        }    }}void Excluir(int ID) //Função para editar clientes{    char sn;    while(true)    {        if(cad[ID].excluido!= 1){        system("cls");        printf("\nId:%d \t\n 1 - Nome: %s \t\n 2 - Endereco: %s \t\n 3 - Telefone: %s \t\n 4 - CPF: %s \t\n 5 - Status %s \t\n 9 - Sair\n\n", cad[ID].id, cad[ID].nome, cad[ID].end, cad[ID].tel, cad[ID].cpf, cad[ID].ai);        printf("Tem certeza que deseja excluir? (s/n)");        printf(">");		sn=getche();        if(sn=='s'||sn=='S')        {            cad[ID].excluido=1;            system("cls");            printf("\nExcluido com sucesso!");            break;        }        else if(sn=='n'||sn=='N')        {        }        }    }}

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Thiago72

     

     

    Não olhei o restante do código, mas na função consultar(), tem o seguinte erro:

     

    > if(sel=='d'||sel=='D'); e if(sel=='d'||sel=='D');

     

    Você colocou o "ponto e virgula".

    if (sel=='e'||sel=='E') // if(sel=='e'||sel=='E';  {     Editar(j); }else if (sel=='d'||sel=='D') // if(sel=='d'||sel=='D'); {      Excluir(j); }

    A melhor opção nesse caso, excluir cadastro seria uma lista encadeada simples, dê uma pesquisada sobre isso.

     

    Abraço.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @slarkforgo

     

    É eu percebi rs, me desculpe.

    Vou pesquisar sobre lista encadeada.

     

    Mano muito obrigado pela sua ajuda, estou dando este tópico como resolvido, pois ele ja está grande demais rs.

    Outras dúvidas estarei criando outro tópico.

     

    Muito obrigdado!!!

     

    Att,

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.





    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

    ×