1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

funçao - C

Discussão em 'Programação' iniciada por FTRock, 7 de Dezembro de 2008. (Respostas: 6; Visualizações: 725)

  1. É possível fazer uma função em C que recebe como argumento um file pointer do tipo FILE e retornar uma lista?é que não tou a ver como se faz
     
  2. Baderous

    Baderous Banido

    E é suposto essa função fazer o quê? Só nos deste os parâmetros e tipos de retorno, não dá para ajudar muito só com isso.
     
  3. sorry,anyway ja ta resolvido.mas agora tenho outra questao. na funçao main tenho algo como

    Código:
    main{
    FILE *fp;
     
    fopen=bla bla (abro o ficheiro para leitura)
     
    /*depois chamo uma funçao void*/
    le_ficheiro_ate_um_sitio(fp);
    return 0;
    }
    
    A minha questao é a seguinte: eu queria chamar outra funçao onde recebia tambem fp mas queria que começa-se a ler tambem onde a funçao le_ficheiro_ate_um_sitio.Aquilo que me acontece é que quando chamo esta segunda funçao ela começa a ler na linha a seguir onde acabou de ler a primeira funçao(peço desculpa se nao me estou a explicar lá muito bem...)

    edit:é obvio que a funçao main tem muitas mais coisas,tentei apenas por aqui de uma forma simplificada daquilo que interessa para a questao...
     
    Última edição pelo moderador: 8 de Dezembro de 2008
  4. Baderous

    Baderous Banido

    Tens de colocar o file pointer a apontar para o início do ficheiro. Podes fazer isso com:

    Código:
    rewind(fp);
     
  5. mas eu nao quero voltar ao inicio do ficheiro.eu quero é que ele volte apontar para o sitio que estava apontar antes de entrar na primeira funçao...
     
  6. Baderous

    Baderous Banido

    Então tens de usar a função fseek e andar para trás com o file pointer. Para isso, penso que podes usar a função ftell antes de entrar na primeira função para te dar a posição do fp. Depois entras na tal primeira função e, quando saíres, fazes outra vez ftell. Depois usas o fseek para andar para trás com o fp, sendo o offset igual à diferença dos valores retornados pelos 2 ftells.
    http://www.cplusplus.com/reference/clibrary/cstdio/fseek.html
    http://www.cplusplus.com/reference/clibrary/cstdio/ftell.html
     
  7. obrigado pela ajuda!!já consegui!
     

Partilhar esta Página