Estou com problemas para gravar um lista simplesmente encadeada em um arquivo. Eu consigo gravar apenas 1 registro, quando eu compilo denovo, e vou cadastrar, o registro q tava no arquivo é sobrescrito pelo novo cadastro. Estou com problemas tb para mostrar os dados contidos no arquivo...
Segue o código:
Desde já agradeço.
void cadastro(){
celula *elemento;
elemento=malloc(sizeof(celula));
if(elemento==NULL){
printf("\nErro ao Alocar!");
}else{
if(cabeca->tamanho==0)
elemento->proximo=NULL;
else
elemento->proximo = cabeca->inicio;
cabeca->inicio=elemento;
cabeca->tamanho++;
getchar();
printf("\nDigite o nome:" );
gets(elemento->dados.nome);
printf("\nCidade: ");
gets(elemento->dados.cidade);
printf("\nDigite o Codigo Area do Telefone: ");
scanf("%d", &elemento->dados.cod_area);
printf("\nDigite o Numero do Telefone: ");
scanf("%d", &elemento->dados.telefone);
printf("\nObservacoes: ");
getchar();
gets(elemento->dados.obs);
FILE *arq;
arq= fopen ("agenda", "wb");
if (!arq )
printf (" Erro ao abrir arquivo !");
else{
fwrite (&elemento->dados , sizeof (info), 1, arq );
fclose (arq);
}
}
}
Pergunta
elizier
Olá pessoal.
Estou com problemas para gravar um lista simplesmente encadeada em um arquivo. Eu consigo gravar apenas 1 registro, quando eu compilo denovo, e vou cadastrar, o registro q tava no arquivo é sobrescrito pelo novo cadastro. Estou com problemas tb para mostrar os dados contidos no arquivo...
Segue o código:
Desde já agradeço.
void cadastro(){ celula *elemento; elemento=malloc(sizeof(celula)); if(elemento==NULL){ printf("\nErro ao Alocar!"); }else{ if(cabeca->tamanho==0) elemento->proximo=NULL; else elemento->proximo = cabeca->inicio; cabeca->inicio=elemento; cabeca->tamanho++; getchar(); printf("\nDigite o nome:" ); gets(elemento->dados.nome); printf("\nCidade: "); gets(elemento->dados.cidade); printf("\nDigite o Codigo Area do Telefone: "); scanf("%d", &elemento->dados.cod_area); printf("\nDigite o Numero do Telefone: "); scanf("%d", &elemento->dados.telefone); printf("\nObservacoes: "); getchar(); gets(elemento->dados.obs); FILE *arq; arq= fopen ("agenda", "wb"); if (!arq ) printf (" Erro ao abrir arquivo !"); else{ fwrite (&elemento->dados , sizeof (info), 1, arq ); fclose (arq); } } }Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.