Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LRicardor

Problema com leitura de arquivo TXT

Recommended Posts

Oi, pessoal. Sou novato aqui no fórum (e em programação) e estou com um problema num programa de cadastro de pessoas em C. Depois de muito tempo, consegui fazer o programa ler de um arquivo .txt (dados.txt), mas, apesar de ler, os dados não são visualizados em outras funções do programa (como "listar"). Acredito que seja porque os dados que são armazenados em "point" não são repassados para o resto do programa, mas não tenho certeza e nem tenho nenhuma ideia de como resolver. Se alguém puder ajudar, agradeço MUITO.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <locale.h>

 typedef struct lista{
     char nome[40];
     char rua[40];
     char bairro[40];
     char email[40];
     int telefone;
     char telefoneconvertido[40];
     char formacao[40];
     char local[40];
     char cargo[40];
     char idioma1[40];
     int tempo;
     char tempoconvertido[40];
     float salario;
     char salarioconvertido[40];
     int cpf;
     char cpfconvertido[40];
     unsigned long int codigo;
     struct lista* ant;
     struct lista* prox;
   }Lista;

   //Declaração de funções.
   Lista* inserir(Lista* primeiro);
   void listar(Lista* primeiro, Lista* point);
   Lista* excluir(Lista* primeiro);
   void alterar(Lista* primeiro);
   void pesquisar(Lista* primeiro);
   void carregar(Lista* primeiro, Lista* aux, Lista* point);
   void escrever(Lista* primeiro);

main()
{
   setlocale(LC_ALL, "Portuguese");
   //Declaração de variáveis
   Lista *primeiro= NULL;
   Lista *atual;
   Lista* aux;
   Lista* point;
   char opcao;
   carregar(primeiro, aux, point);

   //Artifício para repetir o programa.
   while(opcao!='s')
   {
     //Menu de opcoes
      printf(" ----------------------------------------------------------------------------\n");
      printf(" | ");printf("\t\t\t     RECRUTAMENTO ONLINE");printf("\t\t\t    |\n");
      printf(" ----------------------------------------------------------------------------\n");
      printf("   |-----------------------------------|\n");
      printf("   | <A>  Novo cadastro                |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <B>  Listar                       |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <C>  Excluir cadastro             |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <D>  Alterar cadastro             |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <E>  Pesquisar cadastro           |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <F>  Sobre o programa             |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <S>  Sair                         |\n");
      printf("   |-----------------------------------|");
      printf("\n\n\n\n");

      //Lendo a opcao do menu
      fflush(stdin);
      opcao= getch();

      //Menu de opcoes
      switch(opcao)
      {
         case 'A':
         case 'a':
              //Inserindo as pessoas.
              fflush(stdin);
              system("cls");
              printf(" ----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t          NOVO CADASTRO     ");printf("\t\t\t    |\n");
              printf(" ----------------------------------------------------------------------------\n");
              primeiro= inserir(primeiro);
         getch();
         system("cls");
         break;

         case 'B':
         case 'b':
              //Listando as pessoas.
              system ("cls");
              printf(" ----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t     PESSOAS CADASTRADAS");printf("\t\t\t    |\n");
              printf(" ----------------------------------------------------------------------------\n");
              listar(primeiro, point);
         getch();
         system("cls");
         break;

         case 'C':
         case 'c':
              //Excluindo pessoas da lista.
              system ("cls");
              printf(" ----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t        EXCLUIR CADASTROS");printf("\t\t\t    |\n");
              printf(" ----------------------------------------------------------------------------\n");
              primeiro= excluir(primeiro);
         getch();
         system("cls");
         break;

         case 'D':
         case 'd':
              //Alterando pessoas da lista.
              system ("cls");
              printf(" ----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t       ALTERAR CADASTRADOS");printf("\t\t\t    |\n");
              printf(" ----------------------------------------------------------------------------\n");
              alterar(primeiro);
         getch();
         system("cls");
         break;

         case 'E':
         case 'e':
              //Pesquisando pessoas da lista.
              system ("cls");
              printf(" ----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t       PESQUISAR CADASTRADOS");printf("\t\t\t    |\n");
              printf(" ----------------------------------------------------------------------------\n");
              pesquisar(primeiro);
         getch();
         system("cls");
         break;

         case 'F':
         case 'f':
              //Fala um pouco sobre como funciona o programa.
              system ("cls");
              printf(" -----------------------------------------------------------------------------\n");
              printf(" | ");printf("\t\t\t       SOBRE O PROGRAMA");printf("\t\t\t             |\n");
              printf(" -----------------------------------------------------------------------------\n");
              printf(" |O programa foi criado com o conceito de que candidatos a determinadas vagas|\n");
              printf(" |                                                                           |\n");
              printf(" |de emprego poderiam ser cadastrados, adicionando dados relevantes para o   |\n");
              printf(" |                                                                           |\n");
              printf(" |empregador. O programa é destinado para o empregador que queira organizar  |\n");
              printf(" |                                                                           |\n");
              printf(" |os candidatos e tornar mais fácil o recrutamento. O programa conta com     |\n");
              printf(" |                                                                           |\n");
              printf(" |5 funcionalidades principais: cadastro, listagem de candidatos, alteração  |\n");
              printf(" |                                                                           |\n");
              printf(" |de dados, exclusão de cadastro e pesquisa de candidatos.                   |\n");
              printf(" -----------------------------------------------------------------------------\n");
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
              getch();
              system("cls");
         break;

         case 'S':
         case 's':
              //Artifício para sair do programa.
              escrever(primeiro);
              opcao='s';
         break;

         default:
              //Artifício que previne a situação de um usuário qualquer, digitar uma opcão inexistente no menu.
              system("cls");
         break;
      }
   }
}

Lista* inserir (Lista *primeiro){
     setlocale(LC_ALL, "Portuguese");
     Lista pessoa;
     Lista *atual= primeiro;
     char identificador= 'F';

     //Lendo as informações do candidato.
     printf("  Nome: ");
     fflush (stdin); fgets(pessoa.nome, 40, stdin); printf ("\n");
     printf("  Rua: ");
     fflush (stdin); fgets(pessoa.rua, 40, stdin); printf ("\n");
     printf("  Bairro: ");
     fflush (stdin); fgets(pessoa.bairro, 40, stdin); printf ("\n");
     printf("  E-mail: ");
     fflush (stdin); fgets(pessoa.email, 40, stdin); printf ("\n");
     printf("  Telefone: ");
     scanf("%d",&pessoa.telefone);printf ("\n");
     printf("  Formação: ");
     fflush (stdin); fgets(pessoa.formacao, 40, stdin); printf ("\n");
     printf("  Local de Formação: ");
     fflush (stdin); fgets(pessoa.local, 40, stdin); printf ("\n");
     printf("  Cargo Pretendido: ");
     fflush (stdin); fgets(pessoa.cargo, 40, stdin); printf ("\n");
     printf("  Língua Estrangeira: ");
     fflush (stdin); fgets(pessoa.idioma1, 40, stdin); printf ("\n");
     printf("  Tempo de experiência no cargo(em anos): ");
     scanf("%d",&pessoa.tempo);printf ("\n");
     printf("  Pretensão salarial: ");
     scanf("%f",&pessoa.salario);printf ("\n");
     printf("  CPF: ");
     scanf("%d",&pessoa.cpf, 9);printf ("\n");
     printf("  Código: ");
     scanf("%u",&pessoa.codigo);printf ("\n");

     //Verificando se o cadastro já existe.
     for(atual=primeiro; atual!=NULL; atual=atual->prox){
        if(atual->codigo==pessoa.codigo){
            identificador= 'V';
            break;
        }
     }

     if(identificador!='V' && (strlen(pessoa.nome)!=1 && strlen(pessoa.rua)!=1)){
         //Alocando os espaços e guardando as informações do candidato.
         Lista* NovoCandidato=(Lista*) malloc (sizeof(Lista));
         strcpy(NovoCandidato->nome, pessoa.nome);
         strcpy(NovoCandidato->rua, pessoa.rua);
         strcpy(NovoCandidato->bairro, pessoa.bairro);
         strcpy(NovoCandidato->email, pessoa.email);
         NovoCandidato->telefone= pessoa.telefone;
         strcpy(NovoCandidato->formacao, pessoa.formacao);
         strcpy(NovoCandidato->cargo, pessoa.cargo);
         strcpy(NovoCandidato->local, pessoa.local);
         strcpy(NovoCandidato->idioma1, pessoa.idioma1);
         NovoCandidato->tempo= pessoa.tempo;
         NovoCandidato->salario= pessoa.salario;
         NovoCandidato->cpf= pessoa.cpf;
         NovoCandidato->codigo= pessoa.codigo;
         NovoCandidato->prox= primeiro;
         printf("  Cadastro realizado com sucesso.");
         printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         return NovoCandidato;
     }else{
         printf("  Cadastro inválido.");
         printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         return primeiro;
     }
}

void listar (Lista* primeiro, Lista* point){
     setlocale(LC_ALL, "Portuguese");
     Lista* atual;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.

     //Imprimindo os candidatos da lista, e suas repectivas informações.
     for(atual= primeiro ; atual!= NULL; atual= atual->prox){
        printf("\n  Nome: ");
        printf("%s", atual->nome);
        printf("\n  Rua: ");
        printf("%s", atual->rua);
        printf("\n  Bairro: ");
        printf("%s", atual->bairro);
        printf("\n  E-mail: ");
        printf("%s", atual->email);
        printf("\n  Telefone: ");
        printf("%d", atual->telefone);
        printf("\n\n  Formação: ");
        printf("%s", atual->formacao);
        printf("\n  Local de Formação: ");
        printf("%s", atual->local);
        printf("\n  Cargo Pretendido: ");
        printf("%s", atual->cargo);
        printf("\n  Língua Estrangeira: ");
        printf("%s", atual->idioma1);
        printf("\n  Tempo de experiência no cargo(em anos): ");
        printf("%d", atual->tempo);
        printf("\n\n  Pretensão Salarial: ");
        printf("%.2f", atual->salario);
        printf("\n\n  CPF: ");
        printf("%d", atual->cpf);
        printf("\n\n  Código: ");
        printf("%u", atual->codigo);
        printf("\n\n");
     }
     if(primeiro==NULL)
        printf("  Nenhum candidato cadastrado.");
     printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
}

Lista* excluir(Lista *primeiro){

     Lista *anterior= NULL;//Ponteiro para saber o elemento anterior ao elemento atual da lista.
     Lista *atual= primeiro;//Ponteiro para percorrer a lista sem perder o primeiro elemento da lista.
     unsigned long int codigo=0;

     //Requisitando e lendo o código do candidato a ser excluído.
     printf("  Código do candidato a ser excluído: ");
     fflush(stdin);
     scanf("%u",&codigo);

     //Procurando o candidato na lista.
     while(atual!= NULL && atual->codigo!=codigo){
        anterior= atual;
        atual= atual->prox;
     }

     //Mensagem caso o candidato não seja encontrado.
     if(atual==NULL){
        printf("\n  Candidato não encontrado.");
        printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
        return primeiro;
     }

     //Excluindo o primeiro candidato da lista.
     if(anterior==NULL){
        printf("\n  Conteúdo excluído com sucesso.");
        primeiro= atual->prox;
     //Excluindo um candidato do meio da lista.
     }else{
        printf("\n  Conteúdo excluído com sucesso.");
        anterior->prox= atual->prox;
     }

     //Desalocando o espaço da memória.
     free(atual);
     printf("\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
     return primeiro;
}

//Função para alterar candidato.
void alterar(Lista* primeiro){
     char nome_substituto[40], rua_substituto[40], bairro_substituto[40], email_substituto[40], formacao_substituto[40], local_substituto[40], cargo_substituto[40], idioma1_substituto[40];
     char telefone_substituto[40], tempo_substituto[40], cpf_substituto[40];
     char salario_substituto[40];
     unsigned long int codigo;
     Lista* atual=primeiro;

     //Requisitando e lendo o código do candidato a ser alterado.
     printf("  Código do candidato a ser alterado: ");
     fflush(stdin);
     scanf("%u",&codigo);

     //Procurando o candidato na lista.
     while(atual!= NULL && atual->codigo!=codigo){
        atual= atual->prox;
     }

     //Alterando os dados do candidato.
     if(atual!=NULL){
        sprintf(atual->telefoneconvertido, "%i", atual->telefone);
        sprintf(atual->tempoconvertido, "%i", atual->tempo);
        sprintf(atual->cpfconvertido, "%i", atual->cpf);
        sprintf(atual->salarioconvertido, "%f", atual->salario);
        printf("\n  Novo nome: ");
        fflush (stdin); fgets(nome_substituto, 40, stdin);
        strcpy(atual->nome,nome_substituto);
        printf("\n  Nova rua: ");
        fflush (stdin); fgets(rua_substituto, 40, stdin);
        strcpy(atual->rua,rua_substituto);
        printf("\n  Novo bairro: ");
        fflush (stdin); fgets(bairro_substituto, 40, stdin);
        strcpy(atual->bairro,bairro_substituto);
        printf("\n  Novo e-mail: ");
        fflush (stdin); fgets(email_substituto, 40, stdin);
        strcpy(atual->email,email_substituto);
        printf("\n  Novo telefone: ");
        fflush (stdin); fgets(telefone_substituto, 40, stdin);
        strcpy(atual->telefoneconvertido,telefone_substituto);
        atual->telefone=atoi(atual->telefoneconvertido);
        printf("\n  Nova formação: ");
        fflush (stdin); fgets(formacao_substituto, 40, stdin);
        strcpy(atual->formacao,formacao_substituto);
        printf("\n  Novo local: ");
        fflush (stdin); fgets(local_substituto, 40, stdin);
        strcpy(atual->local,local_substituto);
        printf("\n  Novo cargo: ");
        fflush (stdin); fgets(cargo_substituto, 40, stdin);
        strcpy(atual->cargo,cargo_substituto);
        printf("\n  Nova Língua Estrangeira: ");
        fflush (stdin); fgets(idioma1_substituto, 40, stdin);
        strcpy(atual->idioma1,idioma1_substituto);
        printf("\n  Novo tempo de experiência no cargo: ");
        fflush (stdin); fgets(tempo_substituto, 40, stdin);
        strcpy(atual->tempoconvertido,tempo_substituto);
        atual->tempo=atoi(atual->tempoconvertido);
        printf("\n  Nova pretensão salarial: ");
        fflush (stdin); fgets(salario_substituto, 40, stdin);
        strcpy(atual->salarioconvertido,salario_substituto);
        atual->salario=atoi(atual->salarioconvertido);
        printf("\n  Novo cpf: ");
        fflush (stdin); fgets(cpf_substituto, 40, stdin);
        strcpy(atual->cpfconvertido,cpf_substituto);
        atual->cpf=atoi(atual->cpfconvertido);
        printf("  Dados alterados com sucesso.");
     }else{
        printf("\n  Candidato não encontrado.");
     }
     printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
}

void pesquisar (Lista* primeiro){
    setlocale(LC_ALL, "Portuguese");
    char opcao;
    int codigopesquisa;
    int salariopesquisa;
    int tempopesquisa;
    char nomepesquisa[40];
    char formacaopesquisa[40];
    char cargopesquisa[40];
    char idioma1pesquisa[40];
      printf("   |-----------------------------------| \n");
      printf("   | <A>  Nome                         |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <B>  Código                       |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <C>  Formação                     |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <D>  Cargo                        |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <E>  Língua Estrangeira           |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <F>  Salário Pretendido           |\n");
      printf("   |-----------------------------------|\n");
      printf("   | <G>  Tempo de Experiência         |\n");
      printf("   |-----------------------------------|\n");
      printf("\n\n\n\n");

      //Lendo a opcao do menu
      fflush(stdin);
      opcao= getch();

      //Menu de opcoes
      switch(opcao)
      {
         case 'A':
         case 'a':
              //Pesquisando por nome.
              system ("cls");
              Lista* atualnome;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Nome a ser pesquisado: ");
              fflush (stdin); fgets(nomepesquisa, 40, stdin);
              for(atualnome= primeiro ; atualnome!= NULL; atualnome= atualnome->prox){
                if(strcmp(atualnome->nome, nomepesquisa) == 0){
                    printf("\n  Nome: ");
                    printf("%s", atualnome->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualnome->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualnome->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualnome->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualnome->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualnome->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualnome->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualnome->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualnome->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualnome->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualnome->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualnome->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualnome->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'B':
         case 'b':
              //Pesquisando por código.
              system ("cls");
              Lista* atualcodigo;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Código a ser pesquisado: ");
              scanf("%d", &codigopesquisa);
              for(atualcodigo= primeiro ; atualcodigo!= NULL; atualcodigo= atualcodigo->prox){
                if(atualcodigo->codigo==codigopesquisa){
                    printf("\n  Nome: ");
                    printf("%s", atualcodigo->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualcodigo->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualcodigo->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualcodigo->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualcodigo->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualcodigo->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualcodigo->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualcodigo->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualcodigo->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualcodigo->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualcodigo->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualcodigo->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualcodigo->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'C':
         case 'c':
              //Pesquisando por formação.
              system ("cls");
              Lista* atualformacao;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Formação a ser pesquisada: ");
              fflush (stdin); fgets(formacaopesquisa, 40, stdin);
              for(atualformacao= primeiro ; atualformacao!= NULL; atualformacao= atualformacao->prox){
                if(strcmp(atualformacao->formacao, formacaopesquisa) == 0){
                    printf("\n  Nome: ");
                    printf("%s", atualformacao->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualformacao->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualformacao->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualformacao->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualformacao->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualformacao->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualformacao->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualformacao->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualformacao->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualformacao->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualformacao->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualformacao->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualformacao->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'D':
         case 'd':
              //Pesquisando por cargo.
              system ("cls");
              Lista* atualcargo;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Cargo a ser pesquisado: ");
              fflush (stdin); fgets(cargopesquisa, 40, stdin);
              for(atualcargo= primeiro ; atualcargo!= NULL; atualcargo= atualcargo->prox){
                if(strcmp(atualcargo->cargo, cargopesquisa) == 0){
                    printf("\n  Nome: ");
                    printf("%s", atualcargo->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualcargo->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualcargo->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualcargo->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualcargo->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualcargo->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualcargo->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualcargo->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualcargo->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualcargo->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualcargo->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualcargo->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualcargo->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'E':
         case 'e':
              //Pesquisando por língua estrangeira.
              system ("cls");
              Lista* atualidioma1;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Língua estrangeira a ser pesquisada: ");
              fflush (stdin); fgets(idioma1pesquisa, 40, stdin);
              for(atualidioma1= primeiro ; atualidioma1!= NULL; atualidioma1= atualidioma1->prox){
                if(strcmp(atualidioma1->idioma1, idioma1pesquisa) == 0){
                    printf("\n  Nome: ");
                    printf("%s", atualidioma1->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualidioma1->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualidioma1->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualidioma1->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualidioma1->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualidioma1->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualidioma1->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualidioma1->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualidioma1->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualidioma1->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualidioma1->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualidioma1->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualidioma1->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'F':
         case 'f':
              //Pesquisando por salário.
              system ("cls");
              Lista* atualsalario;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Salário máximo a ser pesquisado: ");
              scanf("%d", &salariopesquisa);
              for(atualsalario= primeiro ; atualsalario!= NULL; atualsalario= atualsalario->prox){
                if(atualsalario->salario<=salariopesquisa){
                    printf("\n  Nome: ");
                    printf("%s", atualsalario->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualsalario->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualsalario->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualsalario->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualsalario->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualsalario->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualsalario->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualsalario->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualsalario->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualsalario->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualsalario->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualsalario->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualsalario->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         case 'G':
         case 'g':
              //Pesquisando por tempo de experiência.
              system ("cls");
              Lista* atualtempo;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.
              printf("\n  Tempo mínimo de experiência a ser pesquisado: ");
              scanf("%d", &tempopesquisa);
              for(atualtempo= primeiro ; atualtempo!= NULL; atualtempo= atualtempo->prox){
                if(atualtempo->tempo>=tempopesquisa){
                    printf("\n  Nome: ");
                    printf("%s", atualtempo->nome);
                    printf("\n  Rua: ");
                    printf("%s", atualtempo->rua);
                    printf("\n  Bairro: ");
                    printf("%s", atualtempo->bairro);
                    printf("\n  E-mail: ");
                    printf("%s", atualtempo->email);
                    printf("\n  Telefone: ");
                    printf("%d", atualtempo->telefone);
                    printf("\n\n  Formação: ");
                    printf("%s", atualtempo->formacao);
                    printf("\n  Local de Formação: ");
                    printf("%s", atualtempo->local);
                    printf("\n  Cargo Pretendido: ");
                    printf("%s", atualtempo->cargo);
                    printf("\n  Língua Estrangeira: ");
                    printf("%s", atualtempo->idioma1);
                    printf("\n  Tempo de experiência no cargo(em anos): ");
                    printf("%d", atualtempo->tempo);
                    printf("\n\n  Pretensão Salarial: ");
                    printf("%.2f", atualtempo->salario);
                    printf("\n\n  CPF: ");
                    printf("%d", atualtempo->cpf);
                    printf("\n\n  Código: ");
                    printf("%u", atualtempo->codigo);
                    printf("\n\n");
                }
              }
              printf("\n\n\n  PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL.");
         break;

         default:
              //Artifício que previne a situação de um usuário qualquer, digitar uma opcão inexistente no menu.
              system("cls");
         break;
      }
   }

void escrever(Lista* primeiro){
    Lista *atual;
    FILE *f;
    f = fopen("dados.txt", "w");
    for(atual= primeiro ; atual!= NULL; atual= atual->prox){
    fprintf(f, "%s|%s|%s|%s|%d|", atual->nome, atual->rua, atual->bairro, atual->email, atual->telefone);
    fprintf(f, "%s|%s|%s|%s|%d|", atual->formacao, atual->local, atual->cargo, atual->idioma1, atual->tempo);
    fprintf(f, "%f|%d|%d|\n", atual->salario, atual->cpf, atual->codigo);
    }
    fclose(f);
}

void carregar(Lista *primeiro, Lista *aux, Lista *point){
    FILE *f;
    primeiro = malloc(sizeof(Lista));
    aux = primeiro;
    aux->prox = 0;
    aux->ant = 0;
    point = aux;
    f = fopen("dados.txt", "r+");
    rewind(f);
    point = malloc(sizeof(Lista));
    point->prox = 0;
    point->ant = aux;
    aux->prox = point;
    while(fscanf(f, "%s\n|%s\n|%s\n|%s\n|%d", &point->nome, &point->rua, &point->bairro, &point->email, &point->telefone)!=EOF){
      fscanf(f, "|%s\n|%s\n|%s\n|%s\n|%d", &point->formacao ,&point->local, &point->cargo, &point->idioma1, &point->tempo);
      fscanf(f, "|%f|%d|%d\n", &point->salario, &point->cpf, &point->codigo);
      aux = point;
      printf("assasa");
      printf("%f", point->salario);
      printf("%d", point->codigo);
      printf("%s", &point->nome);
      point = malloc(sizeof(Lista));
      point->prox = 0;
      point->ant = aux;
      aux->prox = point;
    }
    aux->prox = 0;
    free(point);
    fclose(f);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por OSVALDO ARANTES JÚNIOR
      Preciso validar um acesso a uma pagina, que so pode ser acessada uma vez a cada 20 respostas certas, estou usando  if( $query->num_rows % 20 == 0 ) , so que toda vez que a pagina carrega, executa o comando poderiam me dar uma dica de como prosseguir depois das vinte respostas para 40 e depois somente com 60.. 80...  e assim redirecionar automaticamente de 20 em 20.
    • Por Fernando Rafael
      Boa tarde, estou com um problema ao tentar usar o CMD para imprimir o conteúdo de um arquivo TXT, estou usando o comando:
       
      PRINT /d:"\\cxgeral\Brother HL-1210W series" "imprimir.txt"  
      A impressora responde e faz o processo de impressão, porém a página sai em branco, usando este mesmo comando em uma impressora de pedido (Daruma DR800, Epson T20X, Elgin i9) funciona normalmente. mas em uma impressora comum fica em branco, sei que as impressoras na qual deram certo permitem impressão escrevendo direto na porta na qual estão instaladas. Mas a minha "Brother Hl-1210W" é uma impressora laser A4.
       
      Agradeço pela atenção.
       
       
      visite: www.sisnorg.com
    • Por guialacerda
      Olá amigos, existe algum plugin que me permite criar um formulário de cadastro com as opções:
       
      -Nome
      -Cargo
      -Telefone
      -Email
       
      E a partir desse cadastro, seria possível enviar um email informando todos os cadastrados sobre reuniões, por exemplo?
    • Por szLeonardo
      Olá a todos,
      Estou com um problema no meu cadastro de usuário.
      A parte de cadastrar está sendo realizada corretamente e meu login também, o meu problema está é que tenho que cadastrar em uma tela, depois entrar em outra para validar e acessar.
      Gostaria que quando eu realizasse o cadastro já valida-se e entrasse direto, sem precisar ter que entrar na outra pagina e rodar o login.
       
      Segue meu cadastro que está funcionando:  
      //--Insere Registro   if(isset($_POST['cadastrar'])){     @$usuario      = trim(strip_tags($_POST['usuario']));     @$senha        = trim(strip_tags($_POST['senha']));     @$nivel_acesso = trim(strip_tags($_POST['nivel_acesso']));     $insert = "INSERT INTO cad_usuario (usuario, senha, nivel_acesso)                 VALUES (:usuario, :senha, :nivel_acesso)";   try{     $result = $conexao->prepare($insert);     $result->bindParam(':usuario',      $usuario, PDO::PARAM_STR);     $result->bindParam(':senha',        $senha, PDO::PARAM_STR);     $result->bindParam(':nivel_acesso', $nivel_acesso, PDO::PARAM_STR);     $result->execute();     $contar = $result->rowCount();   if($contar>0){     echo '<div class="alert alert-success">           <button type="button" class="close" data-dismiss="alert">×</button>           <strong>Sucesso!</strong> O Usuario foi Cadastrado!</div>';          $_SESSION['autenticado'] = true;   }else{     echo '<div class="alert alert-danger">           <button type="button" class="close" data-dismiss="alert">×</button>           <strong>Erro ao cadastrar!</strong> Não foi possível cadastrar o Usuario.</div>';   }}catch(PDOException $e){     echo $e;   }}   } }  
      Segue meu validador do usuário cadastrado que está funcionando: 
      <?php session_start(); include_once "connection/conecta.php"; $usuario = new Usuario(); try {   if($usuario->confere($_POST['usuario'],$_POST['senha'])) {     $_SESSION['autenticado'] = true;     $_SESSION['usuario'] = $_POST['usuario'];     header('location: principal.php');   } else {     $_SESSION['autenticado'] = false;     include_once "index.php";     exit("<div class='alert alert-danger col-sm-12'>Usuário ou senha incorretos. Verifique</div>");   } } catch(PDOException $p){   echo "Ocorreu um erro inesperado: ". $p->getMessage(); } ?>  
      Segue minha pagina principal aonde valida a $_SESSION['autenticado'] = false; 
      Mas só valida se passar na pagina index e passar pela validação a cima.
       <?php require_once("connection/conecta.php"); ob_start(); session_start();  if (@!$_SESSION['autenticado']){    include_once "index.php";    exit("<div class='alert alert-danger col-sm-12'>Para acessar o sistema você deve efetuar login</div>");  }     $logado = $_SESSION['usuario'];     $sql = "SELECT * from cad_usuario WHERE usuario = '$logado' and situacao = 'A'";     try{       $result = $conexao->prepare($sql);         $result->execute();       $contar = $result->rowCount();                if($contar =1){         $loop = $result->fetchAll();         foreach ($loop as $show){           $userLogado  = $show['usuario'];           $senhaLogado = $show['senha'];           $nivelLogado = $show['nivel_acesso'];         }       }       }catch (PDOWException $erro){ echo $erro;} ?>  
    • Por Gilberto Jr
      Olá, boa tarde.
      Tudo bem?
       
      Preciso de uma ajuda aqui.
       
      Seguinte, através desse código eu consigo ler as informações que esta dentro do arquivo txt.
      <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>FileAPI HTML5</title> <style type="text/css"> #filecontents { border: double; overflow-y: scroll; height: 400px; } </style> </head> <body> Por favor selecione arquivo que será lido:<br /> <input type="file" id="txtfiletoread" /><br /> <div>Conteúdo do arquivo:</div> <div id="filecontents"> </div> <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> </body> </html> So que o arquivo vem separado por virgulas. Eu quero substituir todas as virgulas por ponto e virgula. Se eu usar dessa forma, ele altera a virgula para ponto e virgula da primeira linha.
      <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> 7909377852089;1;8380 7909377852133,1,8380 7909377820729,2,8380 7909377820736,2,8380 7909377820743,2,8380 E também, o ultimo valor eu preciso separar os centavos por , virgula.
       
      Arquivo deve ficar dessa forma quando mostrado na pagina.
       
      7909377852089;1;83,80
      7909377852133;1;83,80
      7909377820729;2;83,80
      7909377820736;2;83,80
      7909377820743;2;83,80
       
      Ou seja, contando da direita para esquerda, as duas primeiras posições é o centavos.
       
      Se alguém puder me ajudar, ficarei muito grato.
       
      Att;
      Gilberto Jr
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.