Jump to content
diegowell25

Ler os dados dos registros do arquivo.txt(não binario) para o vetor(struct).

Recommended Posts

Preciso criar uma agenda de contatos distribuída com as seguintes características:

Cada contato deverá conter: nome, número de telefone, número de celular, endereço, e-mail.

Agenda deve funcionar menu da seguinte forma: adição, remoção, alteração ou pesquisa de algum contato.

Deve salvar os contatos em um arquivo .txt formatado.

 

Estou fazendo assim:

Abro o arquivo em modo de leitura ("r" = read).

 

Verifico se existe;

Se não, eu defino o tamanho do vetor e vou para o menu para cadastrar e salvo um novo arquivo em modo de leitura "w";

 

Se existir, eu leio o arquivo.txt(formatado) e envio os dados para struct (NÃO SEI FAZER ISSO), e continuo a incrementação se for o cada de um novo cadastro, depois salvo tudo (o que ja tinha e o novo cadastro)

 

Alguém tem algum exemplo de como pode fazer isso sem ser binário?

Share this post


Link to post
Share on other sites

1- você verifica se o arquivo existe depois de ler? Tá meio errado isso.

2- "w" não é modo de leitura.

3- "envio os dados para struct " -> você lê os dados do arquivo com fscanf ou fgets e usa atribuição nos campos da struct.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By jeredy
      Tenho um trabalho da faculdade e não consigo fazer rodar o programa corretamente.
      Quando eu coloco o cpf, na hora de imprimir sai um número aleatório. Creio que possa ser por falta de memória pois se coloco um número menor ele sai certo, porém não consigo adicionar memória em cpf.
       
      Obs: ainda não fiz a parte dos menores e da medial do grupo e a parte de imprimir em tabela pois não consegui fazer funcionar nem um básico mas se alguém souber essa parte também e puder me ajudar agradeço!!
       
      #include <stdio.h> #include <stdlib.h> main(){ struct funcionarios{ int *cpf; char nome[30]; int nascimento; float salario; }; int aux=0; //para testar se for 0 antes de armazenar o cpf struct funcionarios *func; int qtdLeitura=0, i=0, cont=0; func = ((struct funcionarios *) (malloc(sizeof(struct funcionarios) * 1))); while(1){ printf("Digite o cpf %d: ", i+1); scanf("%d", &aux); if(aux!= 0){ func.cpf = aux; fflush(stdin); } else{ break; } if(func != NULL){ qtdLeitura++; func = ((struct funcionarios *) realloc(func, sizeof(struct funcionarios) *(qtdLeitura+1))); } printf("Digite o nome %d: ", i+1); scanf("%s", func.nome); printf("Digite o nascimento %d: ",i+1); scanf("%d", &func.nascimento); printf("Digite o salario %d: ",i+1); scanf("%f", &func.salario); cont++; i++; } printf("\n\n"); for(i=0;i<cont;i++){ printf("Cpf %d:%d \n",i+1, func.cpf); printf("Nome %d: %s\n",i+1, func.nome); printf("Nascimento %d: %d\n",i+1, func.nascimento); printf("Salario %d: %.2f\n",i+1, func.salario); } }
       

    • By juliaKrunker
      1- O comando typedef pode ser utilizado para criar novos comandos, ou simplesmente novas formas de escrever
      determinados comandos em linguagem C. Por exemplo, toda vez que você quiser criar uma variável do tipo struct
      declarado acima, terá que escrever o nome completo do tipo, isto é struct lista. Usando o comando typedef, defina um
      tipo alternativo, chamado Lista, que possa ser usado em lugar de struct lista.

      2-  Usando o tipo Lista que você criou na questão 3, declare uma variável chamada myList que possa ser utilizada para
      construir uma lista encadeada.
       
      3- (0,5) Usando o tipo Lista que você criou na questão 3, declare uma variável chamada novo que possa ser utilizada para criar
      um novo elemento para a lista declarada na questão 4.

      4- Escreva uma linha de código que aloque espaço na memória para a variável novo declarada na questão 5, de forma
      que a variável possa ser utilizada para inserir um novo elemento na lista myList declarada na questão 4.

      5 -Considerando a variável myList declarada na questão 4 e a variável novo declarada na questão 5 e alocada na questão
      6, atribua os valores 1 para o atributo id e 9.1 para o atributo valor e insira-a na lista myList.
       
      6- O trecho de código apresentado a seguir, refere-se a uma função que receberá como parâmetro um ponteiro para
      uma lista do tipo Lista e deverá calcular e retornar a média dos valores existentes na lista. Escreva o corpo da função.

    • By Marcus_Bazzoni
      Boa tarde a todos.
       
      Estou precisando melhorar a velocidade de gravação/leitura em disco do MS SQL SERVER 2012. Atualmente estou com um SSD que faz:
       
      4K Randon Read:  33.2 MB/s
      4K Randon Write: 90.2 MB/s
      4k Randon Mix:    34.1 Mb/s
       
      A minha ideia é comprar um SSD que possua melhor performance na leitura e gravação aleatória de pequenas porções de dados (4K Randon Read, 4k Randon Write e 4K Mixed IO speed)
      Acredito que é desta forma que o SQLSERVER 2012 trabalha, ou seja, lendo e gravando pequenas porções no disco. 
       
      Então... gostaria de saber se o meu raciocínio está certo, pois não tenho certeza se assim o SQL SERVER 2012 vai responder mais rápido.
       
      Desde já agradeço toda e qualquer opinião.
       
      Marcus
    • By vinihhylian0103
      É possível anexar um arquivo e enviá-lo por email via PHP? Se sim, alguém poderia me dar uma ajuda com isso por favor, é realmente muito importante para meu projeto do TCC.
    • By ivolini
      Como adicionar numeros de uma struct destro de uma função em uma lista já criada em struct?
      Obrigado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.