Visualizzazione dei risultati da 1 a 6 su 6

Discussione: fscanf

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56

    fscanf

    il primo codice mi ha scritto correttamente i 4 record della struct guida.
    Vado poi a leggerli col secondo programmino e quando li stampo con la
    printf ho questo output >>>

    -1076455928
    0.00
    [Press Enter to close window]

    Cosa canno ?
    Grazie.

    codice:
      #include <stdio.h>
    
    typedef struct libro
    {
      char titolo[100];
      char autore[50];
      int anno_pubblicazione;
      float prezzo;
    } t_libro; 
    
                 int main() {
    
         t_libro guida = {"Guida al C", "Fabrizio Ciacchi", 2003, 45.2};
           FILE *stream = fopen("miof.txt","w");    
           fprintf(stream, "%s\n" "%s\n" "%d\n" "%2.2f\n", 
                    guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo);
      
       fflush(stream);
       fclose(stream);
    }


    codice:
      #include <stdio.h>
    
    typedef struct libro
    {
      char titolo[100];
      char autore[50];
      int anno_pubblicazione;
      float prezzo;
    } t_libro;
    
    
    int main()
    {
    
           t_libro guida  ;
    
          FILE *stream = fopen("miof.txt","r");
    
          fprintf(stream, "%s\n" "%s\n" "%d\n" "%2.2f\n",  guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo);
    
          fprintf(stream, "%s\n" "%s\n" "%d\n" "%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo);
    
       printf("%s\n" "%s\n" "%d\n" "%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo) ;
    
      
       fflush(stream);
       fclose(stream);
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma dove sta la fscanf ???
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56
    Originariamente inviato da oregon
    Ma dove sta la fscanf ???
    !! Mi era rimasta nella penna!
    Adesso l 'ho sistemata (penso..) ,il codice è sotto ma la
    printf da >>>

    Guidaal-10808622480.00
    [Press Enter to close window]








    codice:
     
      #include <stdio.h>
    
    typedef struct libro
    {
      char titolo[100];
      char autore[50];
      int anno_pubblicazione;
      float prezzo;
    } t_libro;
    
    int main()
    {
         t_libro guida  ;
    
    
       FILE *stream = fopen("miof.txt","r");
       
    
       fscanf(stream, "%s\n" "%s\n" "%d\n" "%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo);
    
    
       printf("%s" "%s" "%d" "%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo) ;
    
      
       fflush(stream);
       fclose(stream);
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    1) Dato che le stringhe sono fatte da più parole, usa la fgets e non la fscanf

    2) Per la fscanf si passa il "puntatore" al dato ... con il &

    codice:
       fgets(guida.titolo, 100, stream);
       fgets(guida.autore, 50, stream);
       fscanf(stream, "%d\n%f\n", &guida.anno_pubblicazione, &guida.prezzo);
    
       printf("%s%s%d\n%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo) ;

    P.S. Fai attenzione al titolo e al regolamento .... non usi da poco nel forum ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56
    Originariamente inviato da oregon
    1) Dato che le stringhe sono fatte da più parole, usa la fgets e non la fscanf

    2) Per la fscanf si passa il "puntatore" al dato ... con il &

    codice:
       fgets(guida.titolo, 100, stream);
       fgets(guida.autore, 50, stream);
       fscanf(stream, "%d\n%f\n", &guida.anno_pubblicazione, &guida.prezzo);
    
       printf("%s%s%d\n%2.2f\n", guida.titolo,guida.autore,guida.anno_pubblicazione,guida.prezzo) ;

    P.S. Fai attenzione al titolo e al regolamento .... non usi da poco nel forum ...
    Perfetto.
    Molte grazie

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Moderazione

    Originariamente inviato da roldo
    fscanf
    Per favore, usa titoli in linea con il Regolamento, indicando il linguaggio e una descrizione significativa.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.