Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] copiare struttura su file

    ciao a tutti...ho provato a usare la fwrite per scrivere una struttura su file ma ottengo sempre una serie di quadratini...come si usa questo comando? Scrive in binario?

    codice:
    #include <stdio.h>
    
    int main()
    {
    
      struct x{
        int a;
        int b;
      } numeri;
      FILE *fp;
    
    
      numeri.a = 5;
      numeri.b = 3;
    
    
      fp = fopen("gatto.txt", "w");
    
      fwrite(&numeri, sizeof(struct x), 1, fp);
    
      fclose(fp);
      getch();
      return 0;
    }

  2. #2
    certo.. come pretendi di scrivere il cntenuto di una struct altrimenti?

    mica è una stringa... scrive su file l'immagine che la struct ha in memoria.. è un tipo di memorizzazione usata per archiviare dati, non per fornire un output leggibile ad un umano


  3. #3
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119

    Re: [c] copiare struttura su file

    Originariamente inviato da Lucked
    ciao a tutti...ho provato a usare la fwrite per scrivere una struttura su file ma ottengo sempre una serie di quadratini...come si usa questo comando? Scrive in binario?

    codice:
    #include <stdio.h>
    
    int main()
    {
    
      struct x{
        int a;
        int b;
      } numeri;
      FILE *fp;
    
    
      numeri.a = 5;
      numeri.b = 3;
    
    
      fp = fopen("gatto.txt", "w");
    
      fwrite(&numeri, sizeof(struct x), 1, fp);
    
      fclose(fp);
      getch();
      return 0;
    }
    Dovrebbe andar bene cosi... Prova a fare qualche controllo sulla fwrite per vedere se ti da errore.

  4. #4
    Un esempio di scrittura e lettura:
    codice:
    #include <stdio.h>
    
    int main(void) {
      FILE *fd;
      struct prova {
        int n;
      } a, b;
      a.n=3;
      char s[sizeof(struct prova)];
      fd = fopen("file", "w");
      bzero(&s, sizeof(s));
      memcpy(s, (char *)&a, sizeof(s));
      fputs(s, fd);
      fclose(fd);
      fd = fopen("file", "r");
      bzero(&s, sizeof(s));
      fgets(s, sizeof(s), fd);
      memcpy(&b, s, sizeof(s));
      fclose(fd);
      printf("%d\n", b.n);
    }
    Printa 3

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    certo.. come pretendi di scrivere il cntenuto di una struct altrimenti?

    mica è una stringa... scrive su file l'immagine che la struct ha in memoria.. è un tipo di memorizzazione usata per archiviare dati, non per fornire un output leggibile ad un umano
    thanks..
    quindi il mio programma è giusto?
    e se volessi fare quello che intendevo dovre usare un metodo come fprintf?

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.