Forum Pplware
Leitura de ficheiros em C - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Leitura de ficheiros em C (/showthread.php?tid=11396)



Leitura de ficheiros em C - jrps - 23-04-2012 19:11

Boa tarde,
tenho de fazer um trabalho em c que tem de ler valores de um ficheiro. Não sei como contar as linhas do ficheiro e ler de lá os valores. O que tenho é:
/* abertura com validação do ficheiro */
if ((ptfich = fopen (argv[1], "r")) == NULL)
{
fprintf (stderr, "O ficheiro %s não existe\n", argv[1]);
fclose (ptfich); /* fecho do ficheiro */
return;
}

/*leitura da dimensao do ficheiro*/
while(fscanf (ptfich, "%d", &i) != EOF)
nelem++;

/* criação da sequência */
if ((sequencia = (int *) calloc (nelem, sizeof (int))) == NULL)
{
fprintf (stderr, "A sequência não foi criada por falta de memória\n");
return;
}

/* leitura dos valores do ficheiro para a sequência */
for (i = 0; i < nelem; i++)
fscanf (ptfich, "%d", &sequencia[i]);

fclose (ptfich); /* fecho do ficheiro */

mas os valores que ficam na sequencia são so 0's.


RE: Leitura de ficheiros em C - Corvus - 24-04-2012 19:06

Dicas:

1) Usa a tag code para o teu código ficar melhor formatado no post
2) Para leres o ficheiro uma linha de cada vez usa o fgets() em vez do fscanf()
3) Não sei se tens um valor por linha ou vários valores em cada linha. No caso de teres vários podes usar strtok() para "quebrar" a linha nos vários valores

HTH