Erro em função desenvolvida em C

Ola a todos :)

Tou a guardar varias listas num ficheiro .dat. Através da função fread, leio todas as listas que criei. contudo, só consigo ler todas as listas uma vez e depois para ler as listas de novo tenho que fechar o ficheiro e abri-lo de novo. Eu queria continuar a ler listas sem ter de estar de realizar este processo. Portanto, quando leio as listas todas, tenho de voltar a posicionar-me de novo no inicio das listas. Eu penso que a função para isso é rewind(*f). Aqui, após ler as listas todas, qdo tento ler a segunda vez aparece-me um erro: "Debug Assertion Failed!...Expression: (_osfile(fh) & FOPEN)". a função que eu realizei para ler as listas é:

Código:
[SIZE=2][COLOR=#0000ff]
[SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] listar(FILE *g)[/COLOR][/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2]system([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"cls"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
 
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]struct[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] Listas lis;[/SIZE]
 
[SIZE=2]fflush(stdin);[/SIZE]
 
[SIZE=2]printf([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"\nListar : "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
 
[SIZE=2]rewind(g);[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (fread(&lis,tamanhoLis,1,g)!=0)[/SIZE]
[SIZE=2]{ [/SIZE]
[SIZE=2]apres_dados(lis);[/SIZE]
[SIZE=2]printf([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"\n\nQualquer tecla para prosseguir\n"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2]getch();[/SIZE]
[SIZE=2]} [/SIZE]
 
[SIZE=2]system([/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]"cls"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);[/SIZE]
 
[SIZE=2]}[/SIZE]

O que tenho de fazer para ler as listas como pretendo?

Obrigado pela ajuda :D
 
A funcao fseek nao fara o k pretendes? Uma pesquisa no google por fseek devete esclarecer duvidas acerca desta funcao.

fseek ( fp , ftell(fp) , SEEK_SET ); // Sets the position indicator associated with the stream, ftell Returns the current value of the position indicator of the stream.

Cumps
 
Back
Topo