Ciao a tutti!
Ho un problema e non riesco a capire il motivo.. quando lo eseguo mi entra in loop, e non esce mai perchè non entra mai in questa condizione:
codice:
else
		{
		
			fineDecompressione=1; //ho raggiunto la fine del file e ponendo fineDecompressione a 1 esco dal while
		}
premetto che alla funzione decomprimi passo un file di n caratteri composto da una successione di numeri (se il numero è 0 lo associo a 256), alternata a caratteri..

Prima del while (fineDecompressione==0) ovviamente apro il file *nomeDelFile in modalità lettura binaria e un altro file in modalità scrittura..

Il problema dovrebbe consistere nel fatto che non trova l'EOF e quindi fineDecompressione non diviene mai uguale a 1 e non esce dal while, entrando così in loop!

LUNGHEZZA_BUFFER_LETTURA è 1000

Riuscite ad aiutarmi? grazie mille per la disponibilità!

codice:
void decomprimi(unsigned char *nomeDelFile)
{

...
	
	while(fineDecompressione==0)
	{				//fino alla fine del file 	
		
		numeroByte=fread(bufferLettura,1,LUNGHEZZA_BUFFER_LETTURA,fileBinario);	//
		printf("\n numeroByte:%d \n",numeroByte);
		
		
		
			rewind(fileBinario);	
		if(!feof(fileBinario))					//se non è la fine del file (End Of File)
		{	
			
	
			while(k<numeroByte)
			{
				
				numero=bufferLettura[k];
				lettera=bufferLettura[k+1];
				printf("\n Numero: %d \n",numero);
				printf("\n Lettera: %c \n",lettera);
				
				if(numero==0)
				{	
					numero=256;
				}
				
				if(lettera==64)
				{
					lettera=' ';
				}
				
				bufferScrittura=(unsigned char*)malloc((numero+1)*sizeof(char));		//allocazione della memoria per bufferScrittura
				
				for(j=0;j<numero;j++)
				{
					bufferScrittura[j]=lettera;
				}
					
				bufferScrittura[j]='\0';	//metto il \0 per andare a scrivere sul file
			
				printf("\n BufferScrittura: %s \n",bufferScrittura);
				
				fileScritto=fwrite(bufferScrittura,1,(numero+1),fileTesto);	//scrivo sul file
				
				free(bufferScrittura);				
				numero=0;
				lettera='\0';
				
				k+=2;
			}
			
		}
		else
		{
		
			fineDecompressione=1; //ho raggiunto la fine del file e ponendo fineDecompressione a 1 esco dal while
		}

	}
	

	
		printf("\nFine della decompressione!\n");
		fflush(stdout);
		
		//chiusura dei file aperti
		fclose(fileBinario);
		fclose(fileTesto);
		
}