Salve ragazzi, allego il programma che sto progettando: è una sorta di palinsesto TV (banale)
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];
        
float ora;
        } 
palinsesto

//funzioni
void wpalinsesto();
void rpalinsesto();
void ordina_pal();
void cancella_pal();
void restituiscidesiderato();
void pausa();

//main()
main() {
       
int scelta;
       
       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 Leggi Palinsesto desiderato\n");
            
printf("5 Cancella Palinsesto desidetato\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)
                                {
                                          
ordina_pal();
                                          }
                                          if(
scelta == 4)
                                          {
                                                    
restituiscidesiderato();
                                                    }
                                                    if(
scelta == 5)
                                                    {
                                                              
cancella_pal();
                                                              }
                                                              if(
scelta ==6)
                                                              {
                                                                        exit(
1);
                                                                        
                                                                        }
                                                                        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("palinsesto.txt","ab"))) {
                                           
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("%f",&p.ora);
                                                  
                                                  
fwrite(&p,sizeof(palinsesto),1,fp);
                                                  
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("palinsesto.txt","rb"))) {
                                          
printf("Impossibile leggere il file\n");
                                          
pausa();
                                          } else {
                                                 while(
fread(&p,sizeof(palinsesto),1,fp) > 0) {
                                                 
                                                 
printf("Programma > %s\n"p.programma);
                                                 
printf("Rete > %s\n"p.reti);
                                                 
printf("Ora > %f\n",p.ora);
                                                 }
                                                 }
                                                 
fclose(fp);
                                                 
}
//end
 
/*
ordina: ordina le partite del palinsesto in base all'ora
*/
void ordina_pal()
{
 }
 
/*
restituiscidesiderato : restituisce il palinsesto desiderato in base al programma
*/
void restituiscidesiderato()
{
     
palinsesto p;
     
FILE *fp;
     
char prog[MAX];
     
     if(!(
fp=fopen("palinsesto.txt","ab"))) {
                                           
printf("Impossibile proseguire\n");
                                           
pausa();
                                           } else {
     
printf("Inserisci il programma che vuoi modificare\n");
     
scanf("%s",&prog);
     while(
fread(&p,sizeof(palinsesto),1,fp)){
     
     
     if(
strcmp(prog,p.programma)==0) {
                                     
printf("Hai scelto il programma: %s"prog);
                                     
printf("\n");
                                     
printf("Inserisci il nuovo nome\n");
                                     
fflush(stdin);
                                     
scanf("%s"p.programma);
                                     
printf("Inserisci la rete\n");
                                     
scanf("%s"p.reti);
                                     
printf("Inserisci l'ora\n");
                                     
scanf("%d",&p.ora);
                                     
                                     
fwrite(&p,sizeof(palinsesto),1,fp);
                                     
                                     
printf("Programma modificato\n");
                                     } 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("palinsesto.txt","rb"))) {
                                            
printf("Impossibile accedere al file\n");
                                            
pausa();
                                            } else {
     
printf("Inserisci il programma da cancellare\n");
     
scanf("%s",&prog);
     
fp1 fopen("temp.dat","wb");
     while(
fread(&p,sizeof(palinsesto),1,fp) != 0) {
                                     while(
strcmp(prog,p.programma) != 0) {
                                                    
fwrite(&p,sizeof(palinsesto),1,fp1);
                                                    
fclose(fp);
                                                    
fclose(fp1);
                                                    
rename("temp.dat","palinsesto.dat");
                                                    
printf("Scrittura avvenuta con successo\n");
                                                    }
                                     }
     }
                                     
}
 
/*
pausa: ferma lo schermo finchè non si preme il tasto invio
*/
void pausa()
{
     
char invio;
     
printf("Premere INVIO per continuare\n");
     
invio getchar();
     return;
     } 
Un'altra cosa: la funzione ordina() come dovrei scriverla? Se la faccio con i puntatori dovrei inserire anche una lista...


Attendo una risposta...nel frattempo vi ringrazio anticipatamente