Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    [C] scrittura file binario

    ciao a tutti, ho fatto questo breve programmino
    ma ho notato che facendo il debug passo-passo non mi esegue la scrittura su file
    sapete dirmi dove sbaglio ?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define n 3
    /*
     *
     */
    int main() {
    
        struct body {
            int n_tessera;
            char cognome[15];
            char nome[15];
            char tipo_iscrizione[12];
            float costo;
            int tipo_corso;
           }iscri[n];
    
           int i,v;
           char buffer[] = "annuale";
    
    		FILE *cfPtr;
    
           printf ("INSERISCI I DATI DEI CLIENTI\n");
    
           for (i = 0; i < n; i++){
               printf ("Numero tessera : \n");
               scanf("%d", &iscri[i].n_tessera);
               printf ("Cognome : \n");
               scanf ("%s", iscri[i].cognome);
               printf ("Nome : \n");
               scanf("%s", iscri[i].nome);
               printf("Iscrizione - annuale, semestrale, trimestrale, mensile : \n");
               scanf("%s", iscri[i].tipo_iscrizione);
               printf("Costo : \n");
               scanf("%f", &iscri[i].costo);
               printf("Tipo : \n");
               scanf("%d", &iscri[i].tipo_corso);
           }
    
           for (i = 0; i < n; i++){
                v = strcmp(iscri[i].tipo_iscrizione,buffer);
                if (v == 0){
                    printf("\nNumero tessera : %d", iscri[i].n_tessera);
                    printf("\nCognome : %s", iscri[i].cognome);
                    printf("\nNome : %s", iscri[i].nome);
                    printf("\nCosto : %.2f", iscri[i].costo);
                    printf("\nTipo : %d", iscri[i].tipo_corso);
    	   }
          }
    
    		
    
    		cfPtr = fopen("palestra.dat", "wb");
    
            for (j = 0; j < n; j++){
                fwrite(&iscri[j], sizeof(struct body), 1 ,cfPtr);
                }
    
    		fclose(cfPtr);
    
    	   system("PAUSE");
    
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Come fai a compilare il programma se j non e' dichiarata?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Originariamente inviato da oregon
    Come fai a compilare il programma se j non e' dichiarata?
    ora credo che va bene

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define n 3
    /*
     *
     */
    int main() {
    
        struct body {
            int n_tessera;
            char cognome[15];
            char nome[15];
            char tipo_iscrizione[12];
            float costo;
            int tipo_corso;
           }iscri[n];
    
           int i,v,j;
           char buffer[] = "annuale";
    
    		FILE *cfPtr;
    
           printf ("INSERISCI I DATI DEI CLIENTI\n");
    
           for (i = 0; i < n; i++){
               printf ("Numero tessera : \n");
               scanf("%d", &iscri[i].n_tessera);
               printf ("Cognome : \n");
               scanf ("%s", iscri[i].cognome);
               printf ("Nome : \n");
               scanf("%s", iscri[i].nome);
               printf("Iscrizione - annuale, semestrale, trimestrale, mensile : \n");
               scanf("%s", iscri[i].tipo_iscrizione);
               printf("Costo : \n");
               scanf("%f", &iscri[i].costo);
               printf("Tipo : \n");
               scanf("%d", &iscri[i].tipo_corso);
           }
    
           for (i = 0; i < n; i++){
                v = strcmp(iscri[i].tipo_iscrizione,buffer);
                if (v == 0){
                    printf("\nNumero tessera : %d", iscri[i].n_tessera);
                    printf("\nCognome : %s", iscri[i].cognome);
                    printf("\nNome : %s", iscri[i].nome);
                    printf("\nCosto : %.2f", iscri[i].costo);
                    printf("\nTipo : %d", iscri[i].tipo_corso);
    	   }
          }
    
    		
    
    		cfPtr = fopen("palestra.dat", "wb");
    
            for (j = 0; j < n; j++){
                fwrite(&iscri[j], sizeof(struct body), 1 ,cfPtr);
                }
    
    		fclose(cfPtr);
    
    	   system("PAUSE");
    
        return 0;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da jurij7
    ora credo che va bene
    Vuoi dire che funziona?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Originariamente inviato da oregon
    Vuoi dire che funziona?
    si esatto..anche se ho dubbi sull'ultimo recordo che scrive :master:

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da jurij7
    si esatto..anche se ho dubbi sull'ultimo recordo che scrive :master:
    Perche'? Non essere generico ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Originariamente inviato da oregon
    Perche'? Non essere generico ...
    ho rifatto il debug...e scrive correttamente...quindi tutto ok

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quindi, ricapitolando, il problema che hai aperto, era solo per la variabile j ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Originariamente inviato da oregon
    Quindi, ricapitolando, il problema che hai aperto, era solo per la variabile j ...
    a quanto pare si

  10. #10
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    che sicuramente il compilatore ti segnalava.. bisogna imparare a leggere ciò che scrive il compilatore!!

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.