convengo, però è un codicione bello lungo e penso sia poco utile condividerlo tutto (sono più di 600 righe).
Però sono quasi sicuro che sia un problema "di base", perchè per quanto lo modifichi il problema resta ed è sempre legato al primo lancio. Anche se poi modifico il sorgente e lo ricompilo runna senza problemi a patto che non chiuda e riapra il prompt.
Mando comunque la parte clou del programma, ma dubito che possa essere utile (casoII è una funzione descritta altrove)



\code


int main(int argc, char *argv[])
{
FILE *f,*g;
char format[3],fourtytwo[3];
int offset;


if (argc<2) {
printf("\n Inserire il file da comprimere! \n");
return -1;}
//apri il file da leggere e quello da scrivere
f=fopen(argv[1],"rb");
if (f==NULL){
printf("\n File non trovato! \n");
return -1;}


if(strcmp(format,"II")==0){
printf("e' intel tiff\n");
g=fopen("risultato.bmp","wb");
if (g==NULL){
printf("\n Errore nell'apertura del file \n");
return -1;}
casoII(f,g);
}

\end code