Leitura em arquivo

Leitura em arquivo

by Marcel Toniolo -
Number of replies: 2

Ola!

Nao programo com frequencia entao tenho algumas dificuldades. Agradeço se vcs puderem me ajudar sem que eu espere os dias de aula.

Quero que a funcao fscanf() comece a ler o arquivo a partir da 4 linha. Como eu controlo isso?

Abraços

Marcel

In reply to Marcel Toniolo

Re: Leitura em arquivo

by Pedro Musa -
Exemplo de arquvo de entrada.
101 200
4
10 90 40 90
10 60 90 60
40 10 40 90
60 10 60 90

Bom seguindo esse exemplo você não vai querer ler o arquivo da quarta linha.
Os dois primeiros ints são para largura e altura do seu arquivo, você vai precisar deles.
O terceiro int é o numero de linhas, ou seja de retas q compoem seu desenho.
Use ele como foi dado em aula para fazer um loop, e em cada linha seguinte você tem X0, Y0, X1, Y1
Agora se você realmente quer ir para a linha três por exemplo você pode executar o fscanf("%d", n) quatro vezes e perderá os primeiros três ints, ficando com o quarto.
Do jeito que aprendemos até agora você não tem como especificar linha, e sim uma busca pelo proximo inteiro, double, cha, float...
Espero que tenha ajudado.
In reply to Marcel Toniolo

Re: Leitura em arquivo

by José Augusto Soares -
Não sei bem para que fazer isso. Talvez você pudesse rever a estratégia que está usando.

O que poderia ser feito, lembrando que quebra de linha é codificado pelo caractere '\n':
  int cont;
char c;
. . .
cont = 1; /* estamos no início da primeira linha */
while (cont != 4) { /* quando cont == 4 estamos no início da
quarta linha*/
fscanf(arq_ent, "%c", &c);
if (c == '\n')
cont++;
}
/* próximo "fscanf(arq_ent,..." lê a partir da quarta linha */
/* Dá páu se o arquivo tem menos do que 4 linhas. */

Zé Augusto