Conflito na utilização de lista encadeada e leitura de arquivo .txt co
O código abaixo lê um arquivo texto, palavra por palavra (fsanf()), e imprime o resultado na tela. Reparem na variável _gambi_[9], um vetor de char. Ela nem é utilizada pelo programa, mas quando comento ou excluo ela o programa não funciona, mostra um conjunto de caracteres aleatórios no lugar das palavras.
/*
Autoria: Johnson Sudré
Data...: 08/06/2015
*
Função: Lê um arquivo texto palavra por palavra dinâmicamente e imprime o resultado na tela.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lista.h"
int main(void) {
FILE *arq;
char _gambi_[9];
char *p_aux;
arq = fopen("./texto.txt", "r");
printf("\n\n");
if (arq == NULL)
{
printf("Erro, nao foi possivel abrir o arquivo\n");
return(1);
}
while((fscanf(arq, "%s", p_aux))!= EOF)
{
printf("%s ", p_aux);
}
rewind(arq);
printf("\n\n\n Tam | String");
printf("\n-----------+-------------");
while((fscanf(arq, "%s", p_aux))!= EOF)
{
printf("\n%10d | %s ", strlen(p_aux), p_aux);
}
fclose(arq);
return 0;
}O código abaixo era pra ser a evolução do código anterior, e sua função é ler as palavras do arquivo texto e inseri-las numa lista encadeada.
/*
Autoria: Johnson Sudré
Data...: 08/06/2015
*
Função: Lê um arquivo texto palavra por palavra dinâmicamente e imprime o resultado na tela.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "lista.h"
int main(void) {
FILE *arq;
Lista *l;
char _gambi_[9];
char *p_aux;
l=listaIni();
arq = fopen("./texto.txt", "r");
printf("\n\n");
if (arq == NULL)
{
printf("Erro, nao foi possivel abrir o arquivo\n");
return(1);
}
while((fscanf(arq, "%s", p_aux))!= EOF)
{
printf("%s ", p_aux);
}
fclose(arq);
return 0;
}O problema:
o programa pára quando inicio a lista (l=listaIni();) e logo em seguida leio o arquivo. Quando só leio o arquivo dá certo. Quando só crio e manipulo uma lista, também roda. Porém, quando crio uma lista vazia ao ler o arquivo o programa trava.
PS.: Gente desculpem a minha tosquice mas como faço pra anexar alguns arquivos? Preciso anexar a biblioteca lista (.h e .c) e mais dois arquivos, um que contém o texto (texto.txt) e outro (teste_lista.c) que testa a biblioteca para lista encadeada, que utilizei para ver se o erro está na biblioteca (pelo jeito não está, pois o código tá funfando). Tem como anexar pessoal? obs.: pelo botão "minha mídia" não rolou.
Discussão (3)
Carregando comentários...