+ Responder ao Tópico



  1. #1

    Wink pesquisa em cadastro

    Olá a todos, estou desenvolvendo um programa de cadastro simples em c para trabalho da faculdade so que estou com problemas na função de pesuisa desse programa, não estou conseguindo implemanta-la. Alguem poderia me ajudar com essa função. Segue abaixo meu codigo fonte para avaliarem. Desde já agradeço.

    Código c:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    struct funcionario
    {
        char nome[50];
        char endereco[100];
        char nascimento[10];
        char sexo[20];
        char telefone[20];
        char cargo[40];
    };
    typedef struct funcionario Fun;
    //Variaveis Globais
    Fun cadastro[1000];
    int conta = 0;
    //função menu - cria interface com o usuário
    int menu()
    {
        int op;
     
        printf("----------------------------\n");
        printf("- Cadastro de Funcionarios -\n");
        printf("----------------------------\n");
        printf("- 1. Incluir               -\n");
        printf("- 2. Consultar             -\n");
        printf("- 3. Apagar                -\n");
        printf("- 4. Alterar               -\n");
        printf("- 5. Sair                  -\n");
        printf("----------------------------\n");
        printf("Escolha uma opcao: ");
        scanf("%d",&op);    
        return op;
    }
    //função incluir - cadastra informações dos funcionarios
    void incluir()
    {
        system("cls");
        printf("Nome: ");
        fflush(stdin);
        gets(cadastro[conta].nome);
        printf("\n");
     
        printf("Endereco: ");
        fflush(stdin);
        gets(cadastro[conta].endereco);
        printf("\n");
     
        printf("Data de Nascimento: ");
        fflush(stdin);
        gets(cadastro[conta].nascimento);
        printf("\n");
     
        printf("Sexo: ");
        fflush(stdin);
        gets(cadastro[conta].sexo);
        printf("\n");
     
        printf("Telefone: ");
        fflush(stdin);
        gets(cadastro[conta].telefone);
        printf("\n");
     
        printf("Cargo: ");
        fflush(stdin);
        gets(cadastro[conta].cargo);
        printf("\n");
     
        conta++;
     
        return;
    }
    void consultar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja consultar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strcmp(aux,cadastro[x].nome))
            {
                printf("Dados do Funcionario:\n\n");
                printf("Nome: %s\n\n",cadastro[x].nome);
                printf("Endereco: %s\n\n",cadastro[x].endereco);
                printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
                printf("Sexo: %s\n\n",cadastro[x].sexo);
                printf("Telefone: %s\n\n",cadastro[x].telefone);
                printf("Cargo: %s\n\n",cadastro[x].cargo);
                system("pause");
                goto pula;
            }
        }
        printf("Nome nao encontrado\n\n");
        system("pause");
        pula:;
    }
    void apagar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja apagar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(aux[x] == cadastro[x].nome[x])
            {
                free(cadastro[x].nome);
                free(cadastro[x].endereco);
                free(cadastro[x].nascimento);
                free(cadastro[x].sexo);
                free(cadastro[x].telefone);
                free(cadastro[x].cargo);
            }
        }
    }
    void sair()
    {
        system("cls");
        printf("Fim do programa\n\n");
        system("pause");
     
        return;
    }
    int main(int argc, char *argv[])
    {
        int op;
     
     
        do
        {
            system("cls");
            op = menu();
     
            switch(op)
            {
                case 1:
                     incluir();
                     break;
                case 2:
                     consultar();
                     break;
                case 3:
                     apagar();
                     break;
                case 4:
                     //alterar();
                     break;
                case 5:
                     sair();
                     break;
                default:
                     system("cls");
                     printf("Opcao invalida\n\n");
                     system("pause");
                     system("cls");
            }
        }while(op != 5);      
     
        return 0;
    }
    Última edição por osmano807; 14-10-2010 às 15:17.

  2. #2
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: pesquisa em cadastro

    Acho que é isso (precisa da <string.h>)
    Código c:
     if(strstr(cadastro[x].nome, aux))

    Ah, mais uma coisa: Não use fflush(stdin)
    http://www.gidnetwork.com/b-57.html
    Nem gets: http://www.gidnetwork.com/b-56.html
    Última edição por osmano807; 14-10-2010 às 15:21.

  3. #3

    Wink Re: pesquisa em cadastro

    Meu amigo muito obrigado, deu certo. Agora eu estou com outra dúvida, na função excluir vou usar o comando if(strstr(cadastro[x].nome, aux)) e se ele encontrar terei que zerar as variaveis da struct, mas como zera-las? Se eu coloco cadastro[x].nome, aux = 0 por exemplo da pau, se eu uso free não acontece nada. Ah e na função pesquisa teria alguma maneira de eu não ter que usar o comando goto. Se codigo abaixo:

    Código c:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    struct funcionario
    {
        char nome[50];
        char endereco[100];
        char nascimento[10];
        char sexo[20];
        char telefone[20];
        char cargo[40];
    };
    typedef struct funcionario Fun;
     
    //Variaveis Globais
    Fun cadastro[1000];
    int conta = 0;
     
    //função menu - cria interface com o usuário
    int menu()
    {
        int op;
     
        printf("----------------------------\n");
        printf("- Cadastro de Funcionarios -\n");
        printf("----------------------------\n");
        printf("- 1. Incluir               -\n");
        printf("- 2. Consultar             -\n");
        printf("- 3. Apagar                -\n");
        printf("- 4. Alterar               -\n");
        printf("- 5. Sair                  -\n");
        printf("----------------------------\n");
        printf("Escolha uma opcao: ");
        scanf("%d",&op);    
     
        return op;
    }
     
    //função incluir - cadastra informações dos funcionarios
    void incluir()
    {
        system("cls");
        printf("Nome: ");
        fflush(stdin);
        gets(cadastro[conta].nome);
        printf("\n");
     
        printf("Endereco: ");
        fflush(stdin);
        gets(cadastro[conta].endereco);
        printf("\n");
     
        printf("Data de Nascimento: ");
        fflush(stdin);
        gets(cadastro[conta].nascimento);
        printf("\n");
     
        printf("Sexo: ");
        fflush(stdin);
        gets(cadastro[conta].sexo);
        printf("\n");
     
        printf("Telefone: ");
        fflush(stdin);
        gets(cadastro[conta].telefone);
        printf("\n");
     
        printf("Cargo: ");
        fflush(stdin);
        gets(cadastro[conta].cargo);
        printf("\n");
     
        conta++;
     
        return;
    }
     
    void consultar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja consultar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome, aux))
            {
                printf("Dados do Funcionario:\n\n");
                printf("Nome: %s\n\n",cadastro[x].nome);
                printf("Endereco: %s\n\n",cadastro[x].endereco);
                printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
                printf("Sexo: %s\n\n",cadastro[x].sexo);
                printf("Telefone: %s\n\n",cadastro[x].telefone);
                printf("Cargo: %s\n\n",cadastro[x].cargo);
                system("pause");
                goto pula;
            }
        }
        printf("Nome nao encontrado\n\n");
        system("pause");
        pula:;
     
    }
     
    void apagar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja apagar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome, aux))
            {
                cadastro[x].nome;
                cadastro[x].endereco;
                cadastro[x].nascimento;
                cadastro[x].sexo;
                cadastro[x].telefone;
                cadastro[x].cargo;
            }
        }
    }
     
    void sair()
    {
        system("cls");
        printf("Fim do programa\n\n");
        system("pause");
     
        return;
    }
     
    int main(int argc, char *argv[])
    {
        int op;
     
     
        do
        {
            system("cls");
            op = menu();
     
            switch(op)
            {
                case 1:
                     incluir();
                     break;
                case 2:
                     consultar();
                     break;
                case 3:
                     apagar();
                     break;
                case 4:
                     //alterar();
                     break;
                case 5:
                     sair();
                     break;
                default:
                     system("cls");
                     printf("Opcao invalida\n\n");
                     system("pause");
                     system("cls");
            }
        }while(op != 5);      
     
        return 0;
    }

  4. #4
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: pesquisa em cadastro

    Vamos ver, para limpar uma string, o jeito certo é esse, que zera todos os char do array:
    Código c:
     memset(string, 0, TAMANHO_DA_STRING);
    Isso também funciona (só zera o primeiro, funciona porque strings são delimitadas por '\0', e se coloco o primeiro valor esse, ela fica com tamanho 0 [C strings são estranhas hehe]):
    Código c:
     string[0]='\0';

    Já na função de pesquisa, tente isso (não lembro se C aceita bool, então especifiquei com int, confirma, se não der certo tente com uma checagem no if por um valor):

    Código c:
        void consultar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja consultar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        int achado = 0 /* false */;
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome, aux))
            {
                printf("Dados do Funcionario:\n\n");
                printf("Nome: %s\n\n",cadastro[x].nome);
                printf("Endereco: %s\n\n",cadastro[x].endereco);
                printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
                printf("Sexo: %s\n\n",cadastro[x].sexo);
                printf("Telefone: %s\n\n",cadastro[x].telefone);
                printf("Cargo: %s\n\n",cadastro[x].cargo);
                system("pause");
                achado = 1 /* true */;
                break;
            }
        }
        if(!achado) {
            printf("Nome nao encontrado\n\n");
            system("pause");
        }
     
    }
    Última edição por osmano807; 14-10-2010 às 15:56.

  5. #5

    Talking Re: pesquisa em cadastro

    Deu tudo certo, agora vou fazer a função alterar, depois que estiver pronto eu posto o codigo pro pessoal puder ver. Muito obrigado.
    Agora quanto a questão do fflush(stdin) eu dei uma olhada nos links que vc postou, eu vi que pode ser usado o scanf para fazer a limpeza do buffer como no exemplo:

    Código :
    scanf(%c%*c",&string[i]);

    O %*c elimina o ultimo caracter que seria "\n"

    Minha dúvida é no caso de eu ter uma string do tipo char com conteudo "azul marinho", nessa string existe um espaço no meio e quando pesso atraves do scanf ele sempre dá problema quando existem espaços no meio das palavras.

    Teria como contornar esse problema?

    Quanto ao gets, eu não entendi direito, mas o que vi é para usar fgets no lugar, é isso?

    Mias uma vez obrigado meu camarada

  6. #6
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: pesquisa em cadastro

    Citação Postado originalmente por megabertis Ver Post
    Deu tudo certo, agora vou fazer a função alterar, depois que estiver pronto eu posto o codigo pro pessoal puder ver. Muito obrigado.
    Agora quanto a questão do fflush(stdin) eu dei uma olhada nos links que vc postou, eu vi que pode ser usado o scanf para fazer a limpeza do buffer como no exemplo:

    Código :
    scanf(%c%*c",&string[i]);
    O %*c elimina o ultimo caracter que seria "\n"

    Minha dúvida é no caso de eu ter uma string do tipo char com conteudo "azul marinho", nessa string existe um espaço no meio e quando pesso atraves do scanf ele sempre dá problema quando existem espaços no meio das palavras.

    Teria como contornar esse problema?

    Quanto ao gets, eu não entendi direito, mas o que vi é para usar fgets no lugar, é isso?

    Mias uma vez obrigado meu camarada
    No site tem o exemplo. Usando o fgets, você lê x caracteres (evitando buffer overflow). Aí, você teria que fazer o parse (tipo, ir com um loop for na string, quando achar um "\n", parar e limpar o resto, e armazenar o resto num buffer se precisar). Manipular string/stdin em C eu acho meio chato por isso...

    Momento implantando a discordia: tem que ser em C? Nem c++ serve? C++ já tem a STL com quase tudo pronto, mais fácil. Mas se quiser continuar em C, terá que implementar uma classe de buffer se quiser ter mais praticidade. E uma de string também (que não dependa de '\0').
    Você deve estar no iníco hehe, já to pensando demais...
    No mais, se for permitido alguma lib, tenta achar. Deve ter umas header only, fica fácil incluir.
    Última edição por osmano807; 14-10-2010 às 17:00.

  7. #7

    Padrão Re: pesquisa em cadastro

    Tenho que usar C mesmo pois essa máteria da faculdade só usa C, é logica de programação. Mas estou começando com java em outra máteria. A partir do ano que vem so java.

    Muito obrigado pela ajuda

    Depois eu posto o codigo pra vc dar uma olhada

  8. #8
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: pesquisa em cadastro

    Citação Postado originalmente por megabertis Ver Post
    Tenho que usar C mesmo pois essa máteria da faculdade só usa C, é logica de programação. Mas estou começando com java em outra máteria. A partir do ano que vem so java.

    Muito obrigado pela ajuda

    Depois eu posto o codigo pra vc dar uma olhada
    É, to fazendo um curso também, tem C.
    Semestre que vem, se botarem java (vai ser, programação cliente/servidor, o povo não acha lógico usar bsd sockets), vai ser osso pra mim (linguagem fechada [ora, vou contar com uma ou outra v
    m livre ou com a oficial?], a sun/oracle bloqueando o download do meu ip, ...)
    Posta o source depois, vou dar uma olhada a fundo (preciso fazer um programa para o final do mês [professora chata ], se tu deixar e der certo, posso levar tua ideia pra frente)

  9. #9

    Thumbs down Re: pesquisa em cadastro

    Terminei a função alterar, ai estava testando, tudo estava indo bem, so que agora esta ocorrendo o seguinte:

    EX: Cadastro um funcionario com a função incluir, depois vou pesquisar o mesmo com a função pesquisa, digito o nome que cadastrei tipo "bob", ele me mostra os dados do funcionario bob certinho, só que se eu realizar a pesquisa novamente e digitar so a letra b por exemplo que é a primeira letra do nome bob, ele me mostra os dados do funcionario bob quando deveria mostrar uma mensagem de funcionario não encontrado. Porque será?

    Outro problema que estou tendo é na função alterar, pesso para alterar o funcionario bob, ai ele mostra os dados de bob depois limpa os vetores e pede para incluir novos dados, funciona tudo certo. So que depois que fasso isso se eu utilizar a função pesquisa e colocar qualquer letra ele me mostra dados em branco. Porque será?

    Segue abaixo codigo para analize:

    Código c:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //cria estrutura funcionario----------------------------------------------------
    struct funcionario
    {
        char nome[50];
        char endereco[100];
        char nascimento[10];
        char sexo[20];
        char telefone[20];
        char cargo[40];
    };
    typedef struct funcionario Fun;
    //------------------------------------------------------------------------------
    //Variaveis Globais-------------------------------------------------------------
    Fun cadastro[1000]; //total de inclusoes possiveis
    int conta = 0;     //auxiliar para o numero de inclusoes
    //------------------------------------------------------------------------------
    //função menu - cria interface com o usuário------------------------------------
    int menu()
    {
        int op;
     
        printf("----------------------------\n");
        printf("- Cadastro de Funcionarios -\n");
        printf("----------------------------\n");
        printf("- 1. Incluir               -\n");
        printf("- 2. Consultar             -\n");
        printf("- 3. Apagar                -\n");
        printf("- 4. Alterar               -\n");
        printf("- 5. Relatorio             -\n");
        printf("- 6. Sair                  -\n");
        printf("----------------------------\n");
        printf("Escolha uma opcao: ");
        fflush(stdin);
        scanf("%d",&op);    
        return op;
    }
    //------------------------------------------------------------------------------
    //função incluir - cadastra informações dos funcionarios------------------------
    void incluir()
    {
     
        system("cls");
        printf("Nome: ");
        fflush(stdin);
        gets(cadastro[conta].nome);
        printf("\n");
     
        printf("Endereco: ");
        fflush(stdin);
        gets(cadastro[conta].endereco);
        printf("\n");
     
        printf("Data de Nascimento: ");
        fflush(stdin);
        gets(cadastro[conta].nascimento);
        printf("\n");
     
        printf("Sexo: ");
        fflush(stdin);
        gets(cadastro[conta].sexo);
        printf("\n");
     
        printf("Telefone: ");
        fflush(stdin);
        gets(cadastro[conta].telefone);
        printf("\n");
     
        printf("Cargo: ");
        fflush(stdin);
        gets(cadastro[conta].cargo);
        printf("\n");
     
        conta++;
        return;
    }
    //------------------------------------------------------------------------------
    //funcao consultar - procura um funcionario no cadastro-------------------------
    void consultar()
    {
        int x;
        char aux[50];
        int achado = 0;
     
        system("cls");
        printf("Informe o nome do funcionario que deseja consultar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome,aux))
            {
                printf("Dados do Funcionario:\n\n");
                printf("Nome: %s\n\n",cadastro[x].nome);
                printf("Endereco: %s\n\n",cadastro[x].endereco);
                printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
                printf("Sexo: %s\n\n",cadastro[x].sexo);
                printf("Telefone: %s\n\n",cadastro[x].telefone);
                printf("Cargo: %s\n\n",cadastro[x].cargo);
                achado = 1;
                break;   
            }
        }
        if(!achado)
        printf("Nome nao encontrado\n\n");
        system("pause");
     
        return;
    }
    //------------------------------------------------------------------------------
    //funcao apagar - exlui um funcionario do cadastro------------------------------
    void apagar()
    {
        int x;
        char aux[50];
     
        system("cls");
        printf("Informe o nome do funcionario que deseja apagar: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome, aux))
            {
                memset(cadastro[x].nome,0,sizeof(50));
                memset(cadastro[x].endereco,0,sizeof(100));
                memset(cadastro[x].nascimento,0,sizeof(10));
                memset(cadastro[x].sexo,0,sizeof(20));
                memset(cadastro[x].telefone,0,sizeof(20));
                memset(cadastro[x].cargo,0,sizeof(40));
                conta--;
     
                printf("Exclusao realizada\n\n");
                system("pause");
            }
        }
        return;
    }
    //------------------------------------------------------------------------------
    //funcao alterar - altera o cadastro de um funcionario--------------------------
    void alterar()
    {
        int x,i;
        char aux[50];
        int achado = 0;
     
        system("cls");
        printf("Informe o nome do funcionario que deseja alterar o cadastro: ");
        fflush(stdin);
        gets(aux);
        system("cls");
     
        for(x=0; x<conta; x++)
        {
            if(strstr(cadastro[x].nome,aux))
            {
                //imprime os dados
                system("cls");
                printf("Dados do Funcionario:\n\n");
                printf("Nome: %s\n\n",cadastro[x].nome);
                printf("Endereco: %s\n\n",cadastro[x].endereco);
                printf("Data de nascimento: %s\n\n",cadastro[x].nascimento);
                printf("Sexo: %s\n\n",cadastro[x].sexo);
                printf("Telefone: %s\n\n",cadastro[x].telefone);
                printf("Cargo: %s\n\n",cadastro[x].cargo);
                achado = 1;
                system("pause");
     
                //limpa os vetores
                memset(cadastro[x].nome,0,sizeof(50));
                memset(cadastro[x].endereco,0,sizeof(100));
                memset(cadastro[x].nascimento,0,sizeof(10));
                memset(cadastro[x].sexo,0,sizeof(20));
                memset(cadastro[x].telefone,0,sizeof(20));
                memset(cadastro[x].cargo,0,sizeof(40));
     
                conta--;
     
                //preenche os dados
                system("cls");
                printf("Nome: ");
                fflush(stdin);
                gets(cadastro[conta].nome);
                printf("\n");    
     
                printf("Endereco: ");
                fflush(stdin);
                gets(cadastro[conta].endereco);
                printf("\n");
     
                printf("Data de Nascimento: ");
                fflush(stdin);
                gets(cadastro[conta].nascimento);
                printf("\n");
     
                printf("Sexo: ");
                fflush(stdin);
                gets(cadastro[conta].sexo);
                printf("\n");
     
                printf("Telefone: ");
                fflush(stdin);
                gets(cadastro[conta].telefone);
                printf("\n");
     
                printf("Cargo: ");
                fflush(stdin);
                gets(cadastro[conta].cargo);
                printf("\n");
     
                conta++;
                printf("Alteracao realizada\n\n");
                break;
     
            }
        }
        if(!achado)
        printf("Nome nao encontrado\n\n");
        system("pause");
        return;
    }
    //------------------------------------------------------------------------------
    //funcao sair - finaliza o programa---------------------------------------------
    void sair()
    {
        system("cls");
        printf("Fim do programa\n\n");
        system("pause");
     
        return;
    }
    //------------------------------------------------------------------------------
    //funcao principal--------------------------------------------------------------
    int main(int argc, char *argv[])
    {
        int op;
     
        do
        {
            system("cls");
            op = menu(); //chama interface
     
            switch(op)
            {
                case 1:
                     incluir();
                     break;
     
                case 2:
                     consultar();
                     break;
     
                case 3:
                     apagar();
                     break;
     
                case 4:
                     alterar();
                     break;
     
                case 5:
                     system("cls");
                     printf("Total de funcionarios cadastrados: %d\n\n",conta);
                     system("pause");
                     break;
     
                case 6:
                     sair();
                     break;
     
                default:
                     system("cls");
                     printf("Opcao invalida\n\n");
                     system("pause");
                     system("cls");
                     break;
            }
        }while(op != 6);      
     
        return 0;
    }
    Se puder dar uma olhada e dar alguma dica eu agradeço.
    Última edição por osmano807; 15-10-2010 às 17:45.

  10. #10
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: pesquisa em cadastro

    1º: strstr é como um search mesmo, se tu só bota uma letra, ele vai mandar true se tiver essa letra na string.
    Para resultado exato, terá que usar str(n)cmp. Não usei ela a fundo (tá, não usei, c++, lembra?), então não sei muito dela. Mas pesquisa é com strstr, de todo modo, um 'b' é uma pesquisa válida...

    Agora, nos memset, acho que tu tá usando errado, experimente colocar só o valor da string, sem o sizeof.
    sizeof(50) = sizeof(int) = 4 bytes (c++ e no meu pc, em C deve ser a mesma coisa), aí só limpa os 4 primeiros caracteres...

    Eu particularmente não gosto de variáveis globais (por isso uso C++, classes), mas neste caso, na pior das doideras, dava para usar uma linked list, o problema é trabalhar com pointer e memória.
    No mais, vou tentar dar uma olhada, eu estou apostando naquela variável global ser o problema de não incluir.

    EDIT: não sei se vai rodar aqui, capaz que tu tá usando função só de máquina windows...
    EDIT2: ao invés de diminuir a variável conta na função alterar, deixe ela quieta, e continue usando a variável x. Você está só alterando, não está deletando realmente, só zerando os campos.
    Última edição por osmano807; 15-10-2010 às 17:48.

  11. #11
    Itachi
    Visitante

    Padrão Codigos em C++ ..... AJUDA !!

    Galera só meio ruim de c++ e o professor e mais ou menos para explicar..

    TERIA COMO VC AJUDAREM NESSE EXERCICIOS ABAIXO:
    1. Faça um programa que armazene uma lista de 100 nomes em um arquivo. Após o cadastro o programa devera ler o arquivo e pesquisar um nome inserido pelo usuário no arquivo.
    2. Faça um programa que cadastre uma sequência de N números em um arquivo. Após o cadastro verificar quantos números pares e ímpares foram cadastrados.
    3. Faça um programa que armazene um conjunto de caracteres em um arquivo e após o término o programa deverá ler o arquivo e buscar quantas vogais existem.
    Agradeço a quem poder da uma mãozinha

    =D