Lettura file di un database

di il
50 risposte

50 Risposte - Pagina 2

  • Re: Lettura file di un database

    oregon ha scritto:


    Non capisco la domanda. Leggi il file riga per riga e confronti l'orario con il valore fornito in input.
    si questo l'ho capito io ho scritto cosi però non mi stampa nulla
    
    while(!feof(fp))
       {
          fgets(parole, 50, fp);
          sscanf(parole, "%s %s %s %s %s", nome, sala, orario, posti, prezzo);
       }
       if(argv[1]==orario)
       {
          printf("%s", parole);
       }
    
  • Re: Lettura file di un database

    Le stringhe in C non si confrontano con ==

    Questo dovresti saperlo a questo punto ...

    E poi, lo devi fare all'interno del ciclo, per ogni riga, non dopo che il ciclo è terminato ...
  • Re: Lettura file di un database

    O gesu mio hai pienamente ragione oregon avevo pure inserito l'header string.h ma preso dall'ansia dell'esame ho scritto questa stronzata
  • Re: Lettura file di un database

    Per programmare ci vuole attenzione massima ...

    Io, per queste due linee, ti avrei bocciato ...



    ... scherzo ...
  • Re: Lettura file di un database

    Avresti fatto bene a bocciarmi, sono stato proprio un fesso grazie mille ancora una volta oregon
  • Re: Lettura file di un database

    Ultima domanda(spero e ho finito), ho scritto cosi il codice per il secondo parametro cioè deve stampare tutte le righe che contengono il prezzo inferiore ad argv[2]
    
    else if(argc==3)
       {
          while(!feof(fp))
          {
    	fgets(parole, 50, fp);
    	if(strcmp(prezzo, argv[2])<0 )
    	  printf("%s\n", parole);
          }
       }
    
    ma andando ad eseguire mi stampa tutte le righe perchè?
  • Re: Lettura file di un database

    Per un valore numerico NON devi usare la strcmp !
  • Re: Lettura file di un database

    E lo so il problema è che ho dovuto dichiarare tutto char altrimenti nella sscanf mi dava errore questo è il codice comunque ora ho risolto grazie mille ancora una volta
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
       char parole[50];
       int i=0;
       char nome[50], sala[50], orario[50], posti[50], prezzo[50];
       
       
       FILE *fp;
    
       fp=fopen("programmazione.db", "r");
    
       if(fp==NULL)
       {
          printf("Impossibile aprire il file\n");
          exit(0);
       }
    
       if(argc==2)
       {
       
          while(!feof(fp))
          {
            fgets(parole, 50, fp);
            sscanf(parole, "%s %s %s %s %s", nome, sala, orario, posti, prezzo);
    
            if(!strcmp(orario, argv[1]))
              printf("%s\n", parole);
          }
       }
       if(argc==3)
       {
          while(!feof(fp))
          {
    	fgets(parole, 50, fp);
            sscanf(parole, "%s %s %s %s %s", nome, sala, orario, posti, prezzo);
    
    	if(strcmp(argv[2], prezzo)>0 )
    	  printf("%s\n", parole);
          }
       }
       else
       {
          printf("Errore\n");
       }
    
       fclose(fp);
    
     return 0;
    }
    
    
    se scrivo sscanf(parole, "%s %s %s %d %f", nome, sala, orario, posti, prezzo)
    mi da due warning e non mi restituisce l'output
  • Re: Lettura file di un database

    Inutile dire che se scrivo la sscanf in quel modo dichiaro int posti e float prezzo
  • Re: Lettura file di un database

    Non ho capito, hai risolto o no? Il confronto come lo fai?
  • Re: Lettura file di un database

    Si si grazie mille ancora una volta
  • Re: Lettura file di un database

    Lo faccio cosi il confronto

    if(strcmp(argv[2], prezzo)<0 )
    printf("%s\n", parole);
  • Re: Lettura file di un database

    NOOO ... per i numeri NON devi usare la strcmp, come te lo devo dire?

    Devi confrontare due valori NUMERICI. Quindi prima devi convertire il contenuto delle due stringhe in due valori.
  • Re: Lettura file di un database

    Se scrivo if(atof(prezzo)< atof(argv[2]) mi stampa tutte le righe
  • Re: Lettura file di un database

    Mostra tutto il codice
Devi accedere o registrarti per scrivere nel forum
50 risposte