Ciao ragazzi,
spero almeno questa volta di non aver sbagliato posto su cui postare il mio problema.
Devo fare un programma in C che registra protocolli e li salva su un file.
Successivamente deve leggere dal file quello che ho scritto in precedenza.
Quindi il programma deve leggere le cose che ho scritto anche ieri!
Ho un po' di problemi per farlo.
Comunque sia ci ho provato e lo ho implementato secondo le mie capacità.
Spero mi possiate aiutare.
Questo è il codice:
//questo è un lavoro di lorenzo pisanò
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int voci=1000,anno[4],scelta=0,n=0,presente=0,i,vero=0,volevi,j;
char cliente[10],entrata[10],tipo[20],riga[400],protocollo[1000][3],scrivi,leggi,numero[1000];
FILE *scrivere;
FILE *leggere;
FILE *puntascrivere;
FILE *puntaleggere;
puntascrivere=fopen("leggere.txt", "w");
if(puntascrivere)
{
do
{
printf("/nInserisci:");
printf("1) Aggiungi un nuovo protocollo\n") ;
printf("2) Ricerca esatta \n") ;
printf("3) Stampa completa \n") ;
printf("0) Esci dal programma\n") ;
printf("Che comando desideri usare?: ") ;
gets(riga);
scelta=atoi(riga);
switch (scelta)
{
case 0:
fclose(puntascrivere);
fclose(puntaleggere);
printf("Ciao!");
return 0;
break;
case 1:
puntaleggere=fopen("scrivi.txt", "w");
printf("Inserisci il numero di protocollo: \n") ;
gets(tipo);
fputs(tipo,puntascrivere);
printf("Inserisci se è un Entrata o un Uscita: \n") ;
gets(entrata);
fputs(entrata,puntascrivere);
printf("Inserisci se è un Cliente o un Fornitore: \n") ;
gets(cliente);
fputs(cliente,puntascrivere);
printf("Inserisci l'anno: \n") ;
scanf("%d",&anno);
fputc((int)'\t',puntascrivere);
for(i=0;i<n;i++)
{
printf("Il numero di protocollo e': %d\n",numero[i]);
}
if(n==voci)
{
puts("Il file non può più contenere nessun dato!");
}
for (i=0;i<n;i++)
for(j=0;j<3;j++)
{
if (strcmp(tipo,protocollo[i]) == 0 )
presente = 1 ;
if ( presente == 1 )
{
puts("Il numero di protocollo da lei inserito e' gia' stato registrato");
break ;
}
n++ ;
break ;
}
break;
case 2:
printf("1)cerca in base al tipo di protocollo: \n");
printf("2)cerca in base a Entrata o Uscita: \n");
printf("3)cerca in base al Cliente o Fornitore: \n");
printf("4)cerca in base all'anno: \n");
printf("Che comando desideri usare?: ") ;
scanf("%d",&volevi);
if(volevi==1)
{
printf("Tipo del protocollo: ");
gets(tipo);
for (i=0;i<n&&vero==0;i++)
{
if ( strcmp(tipo,protocollo[i])==0)
{
vero=1;
scelta=i;
}
}
if (vero==1)
{
printf(" %s\n %s\n %s\n %d\n",tipo[i],entrata[i],cliente[i],anno[i]);
}
}
else
{
printf("Impossibile trovare il protocollo cercato") ;
}
if(volevi==2)
{
printf("Entrata o uscita: %c");
gets(entrata);
}
if(volevi==3)
{
printf("Cliente o Fornitore: %c");
gets(cliente);
}
if(volevi==4)
{
printf("Anno: %d");
scanf("%d",&anno);
}
break;
case 3:
if(n==0)
{
printf("non ci sono protocolli all'interno del file!");
}
for(i=0;i<n;i++)
{
printf("\n");
printf("\ntipo di protocollo: %d",tipo[i]);
printf("\nentrata: %d",entrata[i]);
printf("\ncliente: %d",cliente[i]);
printf("\nanno: %d",anno[i]);
printf("\nnumero di protocollo: %d",numero[i]);
printf("\n");
}
break;
}
break;
} while (scelta!=0);
}
else
{
return 0;
}
}