• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bertolo

duvida basica em leitura de ficheiros

2 mensagens neste tópico

#include <stdio.h>

int main (void) {
FILE *notas,*notasf;
float p1,p2,p3,p4;
float n1,n3,n2,n4;
long int num;

if((notasf=fopen("notasfin.txt","w"))==NULL)
{
fprintf(stdout,"Erro na abertura do ficheiro notas.txt.\n");
return 0;
}

if((notas=fopen("notas.txt","r"))==NULL)
{
fprintf(stdout,"Erro na abertura do ficheiro notas.txt.\n");
return 0;
}

fscanf(notas,"| Pesos | %f | %f | %f | %f |",&p1,&p2,&p3,&p4);
while((fscanf(notas,"| %ld | %f | %f | %f | %f |",&num,&n1,&n2,&n3,&n4))!=EOF)
{
fprintf(notasf,"%ld %f\n",num,n1*p1+n2*p2+n3*p3+n4*p4);

}

]

Este foi o programa que escrevi.

o Documento notas.txt é o seguinte:

+-------------------------------------------+

| Pesos | 0.20 | 0.25 | 0.25 | 0.30 |

+--------------------------------------------

| Numero | Teste1 | Teste2 | TesteP | TrabF |

+-------------------------------------------+

| 84101 | 15.0 | 12.4 | 13.5 | 10          |

+-------------------------------------------+

| 85122 | 12.0 | 13.5 |        9.0 | 13    |

+-------------------------------------------+

| 90111 | 11.0 | 10.0 | 11.0 | 14          |

+-------------------------------------------+

pq e que o meu programa nao consegue ler os pesos nem as notas?? o problema e mm no scanf

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fscanf não é nenhum parser, a primeira linha do file é  +-------------------------------------------+ isto não corresponde nada ao que o fscanf espera, e não faz leitura nenhuma.

Pode ter mais erros, mas experimenta tirar essas linhas.

Inclui os \n

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora