Ho rivisto il codice...le funzioni che modificano e cancellano il palinsesto desiderato funzionano solamente se c'è un solo palinsesto nel file..altrimenti no.

Codice PHP:
/*
programma palinsesto partite
*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

#define MAX 3000

//creo la struttura
typedef struct {
        
char programma[MAX];
        
char reti[MAX];
        
char ora[MAX];
        } 
palinsesto

//funzioni
void wpalinsesto();
void rpalinsesto();
int ordina_pal(const void *p1,const void *p2);
void cancella_pal();
void modificadesiderato();
void pausa();
void cancella_tutto();

//main()
main() {
       
int scelta;
       
palinsesto p;
       
       for( ; ; ) 
//for infinito per il menu
       
{
            
printf("###MENU PALINSESTO PARTITE###\n");
            
printf("1 Inserisci Programma nel Palinsesto\n");
            
printf("2 Leggi Palinsesto\n");
            
printf("3 Ordina Palinsesto\n");
            
printf("4 Modifica Palinsesto desiderato\n");
            
printf("5 Cancella Palinsesto desidetato\n");
            
printf("7 Cancella tutto\n");
            
printf("6 Esci\n");
            
printf("##############################\n");
            
            
printf("Inserisci la tua scelta\n");
            
scanf("%i", &scelta);
            
scelta = (int)scelta;
            
            if(
scelta == 1)
            {
                      
wpalinsesto();
                      }
                      if(
scelta == 2)
                      {
                                
rpalinsesto();
                                }
                                if(
scelta == 3)
                                {
                                          
qsort(&p,1,sizeof(palinsesto),ordina_pal);
                                          }
                                          if(
scelta == 4)
                                          {
                                                    
modificadesiderato();
                                                    }
                                                    if(
scelta == 5)
                                                    {
                                                              
cancella_pal();
                                                              }
                                                              if(
scelta ==6)
                                                              {
                                                                        exit(
1);
                                                                        
                                                                        }
                                                                        if(
scelta == 7)
                                                                        {
                                                                                  
cancella_tutto();
                                                                                  }
                                                                        if(
scelta >=)
                                                                        {
                                                                                  
system("cls");
                                                                                  }
            } 
//chiusura for
}//chiusura main


//funzioni
/* wpalinsesto: scrivi sul file di testo palinsesto.dat i dati 
delle partite
*/
void wpalinsesto()
{
     
palinsesto p;
     
FILE *fp;
     
     if(!(
fp=fopen("g:/palinsesto.txt","a"))) {
                                           
printf("Impossibile scrivere sul file\n");    
                                           
pausa();
                                           } else {
                                                  
fflush(stdin);
                                                  
printf("Inserisci il Programma\n");
                                                  
scanf("%s"p.programma);
                                                  
printf("Inserisci la rete\n");
                                                  
scanf("%s"p.reti);
                                                  
printf("Inserisci l'ora\n");
                                                  
scanf("%s",p.ora);
                                                  
                                                  
fprintf(fp,"%s\t%s\t%s\n",p.programmap.reti,p.ora);
                                                  
printf("Scrittura avvenuta con successo\n");
                                                  
                                                  
fclose(fp); 
                                                  } 
//chiusura if...else
                                                  
//end
 
/* 
rpalinsesto: leggi il file palinsesto.dat
*/
void rpalinsesto()
{
     
palinsesto p;
     
FILE *fp;
     
     if(!(
fp=fopen("g:/palinsesto.txt","r"))) {
                                          
printf("Impossibile leggere il file\n");
                                          
pausa();
                                          } else {
                                                 while(
fscanf(fp,"%s\t%s\t%s\n",p.programmap.reti,p.ora) > 0) {
                                                 
                                                 
printf("Programma > %s\n"p.programma);
                                                 
printf("Rete > %s\n"p.reti);
                                                 
printf("Ora > %s\n",p.ora);
                                                 }
                                                 }
                                                 
fclose(fp);
                                                 
}
//end
 
/*
ordina: ordina le partite del palinsesto in base all'ora
*/
int ordina_pal(const void *p1,const void *p2)
{
      
palinsesto *s1 = (palinsesto *) p1;
      
palinsesto *s2 = (palinsesto *) p2;
     
     if(
s1->ora s2->ora) {
     return 
1;
     }
     return -
1;
 }
 
/*
restituiscidesiderato : restituisce il palinsesto desiderato in base al programma
*/
void modificadesiderato()
{
     
palinsesto p;
     
FILE *fp;
     
char prog[MAX];
     
int pos;
     
     
     
     if(!(
fp=fopen("g:/palinsesto.txt","r+"))) {
                                           
printf("Impossibile proseguire\n");
                                           
pausa();
                                           } else {
                                                  
rewind(fp);
     
printf("%i\n"pos);
     
printf("Inserisci il programma che vuoi modificare\n");
     
scanf("%s",&prog);
     
     
     
     while(
feof(fp) != 0) {
     
     if(
strcmp(prog,p.programma)==0) {
                                     
printf("Hai scelto il programma: %s"prog);
                                     
printf("\n");
                                     
                                     
fflush(stdin);
                                     
printf("Inserisci il nome del programma\n");
                                     
scanf("%s"p.programma);
                                     
printf("Inserisci la rete\n");
                                     
scanf("%s"p.reti);
                                     
printf("Inserisci l'ora\n");
                                     
scanf("%s",p.ora);
                                     
pos ftell(fp);
                                     
fseek(fp,pos,SEEK_CUR);
                                if(
fprintf(fp,"%s\t%s\t%s\n"p.programma,p.reti,p.ora) > 0) {
                                     
printf("Programma modificato\n");
                                     exit(
1);
                                     
                                     } else {
                                            
printf("Programma non modificato");
                                            
pausa();
                                            
                                            }
                                     } else {
                                            
printf("Programma non trovato\n");
                                            
pausa();
                                            
                                            }
     }
     }

                                     
fclose(fp);
 }
//end
 

/*
cancella_pal: cancella palinsesto desiderato
*/
void cancella_pal() 
{
     
palinsesto p;
     
FILE *fp;
     
FILE *fp1;
     
char prog[MAX];
     
     
     if(!(
fp=fopen("g:/palinsesto.txt","r+"))) {
                                            
printf("Impossibile accedere al file\n");
                                            
pausa();
                                            } else {
     
printf("Inserisci il programma da cancellare\n");
     
scanf("%s",&prog);
     
fseek(fp,1,SEEK_SET);

//se prog è diverso dal programma desiderato
    
if(strcmp(prog,p.programma) ==0) {
                                
//apri il file temp
                                
fp1 fopen("g:/temp.txt","w+");
                                while(!
feof(fp)) {
                                
//scrivi sul file temp i programmi
                                                    
fprintf(fp1,"%s\t%s\t%s\n",p.programmap.reti,p.ora);
                                                    
printf("Scrittura avvenuta con successo\n");
                                                    break;
                                                    }
                                                    
//chiude i due file
                                                    
fclose(fp);
                                                    
fclose(fp1);
                                                    
//rimuove il palinsesto
                                                    
remove("g:/palinsesto.txt");
                                                    
//rinomina il file temp
                                                    
rename("g:/temp.txt","g:/palinsesto.txt");
                                                    
remove("g:/temp.txt");
                                                    
                                 } else {
                                        
                                 
printf("Programma non trovato\n");
                                 
pausa();
                                    
                                                    
                                                    }
                                                    
                                                    
     }
                                     
}
 
/*
pausa: ferma lo schermo finchè non si preme il tasto invio
*/
void pausa()
{
     
char invio;
     
printf("Premere INVIO per continuare\n");
     
invio getchar();
     return;
     }
            
/*
cancella tutto il file
*/
void cancella_tutto()
{
     
FILE *fp;
     
     
fp fopen("g:/palinsesto.txt","r");
     if( 
remove"g:/palinsesto.txt" ) != )
    
perror"Error deleting file" );
  else
    
puts"File successfully deleted" );
  return;
     } 
come potrei risolvere questo inconveniente?