Pagina 1 di 3 123 UltimaUltima
Risultati da 1 a 10 di 22
  1. #1
    The Cadarn L'avatar di Derfel
    Data Registrazione
    Sun Jan 2005
    Località
    Ferrara
    Messaggi
    6,212

    Predefinito C++ Chi trova l'errore?

    #include <stdio.h>
    #include <stdlib.h>

    struct persona
    {
    char cognome[20];
    int matricola;
    float media;
    }s[100];

    main()
    {
    /*Punto uno*/
    FILE *f;
    FILE *c;/*per il punto due e tret*/
    FILE *creazione;

    int i;
    int n; /*Puntatore dell'fread*/
    char iniziale;
    char nomefile[]= "A.txt";
    char procedi; /*punto tre, procedi: Y/N*/
    int k; /*da usare nel secondo ciclo for*/


    f = fopen("c:\\STUDENTI.BIN","rb");
    if(f == NULL)
    {
    printf("Si &#232; verificato un errore di apertura del file studenti.bin");
    exit(1);
    }

    n = fread(s,sizeof(struct persona),100,f); /*Acquisisco i dati del file in un array*/

    for(i=0;i<n;i++)
    {
    printf("%s %d %f\n", s[i].cognome,s[i].matricola,s[i].media);
    }

    fclose(f);

    /*Punto due*/
    printf("\n\nInserisci la prima lettera del cognome di cui vuoi creare il file txt: ");
    scanf("\n%c", &iniziale);

    nomefile[0]=iniziale;

    printf("%s", nomefile);

    c = fopen(nomefile,"wt");
    if(c==NULL)
    {
    printf("Si &#232; verificato un errore!!");
    exit(1);
    }

    for(i=0;i<n;i++) /*Punto due, creazione file .txt con lettera scelta dall'utente*/
    {
    if (iniziale == s[i].cognome[0])
    {
    fprintf(c,"%s\n",s[i].cognome);
    }
    }

    printf("\nIl file e' stato creato con successo!!\n");

    fclose(c);

    /*Punto tre*/

    printf("\n\n%d\n\n", k);

    while(procedi != 'Y' && procedi != 'N')
    {
    printf("Procediamo col punto tre? (Y/N): ");
    scanf("\n%c", &procedi);
    }

    if (procedi == 'Y')
    {
    printf("Eseguo il punto tre!\n");


    for(k='A';k<='Z';k++);
    {
    printf("%d",k);
    nomefile[0] = k;
    creazione = fopen(nomefile,"wt");
    for(i=0;i<n;i++) /*Punto due, creazione file .txt con lettera scelta dall'utente*/
    {
    if (s[i].cognome[0] == k)
    {
    fprintf(creazione,"%s\n",s[i].cognome);
    }
    }
    fclose(creazione);
    }
    printf("\nScrittura eseguita con successo!\nFine del programma\n");

    }


    if (procedi == 'N')
    {
    printf("Fine del programma\n");
    }
    }


    Io l'ho risolto con l'aiuto del venerando Sirbone, vediamo se vi dilettate a trovarlo!!

  2. #2
    moderator L'avatar di skateorz
    Data Registrazione
    Sat Feb 2006
    Località
    skateopia
    Messaggi
    493

    Predefinito

    Codice:
    #include <stdlib.h>
    =
    Codice:
    #include <string.h>
    anche se di sicuro ho sbagliato
    hey brother, welcome to hell!
    http://skaterz.altervista.org/forum

  3. #3
    The Cadarn L'avatar di Derfel
    Data Registrazione
    Sun Jan 2005
    Località
    Ferrara
    Messaggi
    6,212

    Predefinito

    Hai sbagliato, stdlib &#232; la libreria che mi serve per utilizzare i file La librearia delle stringhe non mi serve a niente in questo caso. Riprova sarai pi&#249; fortunato

  4. #4
    Senior Member L'avatar di gater
    Data Registrazione
    Thu May 2006
    Località
    Torino
    Messaggi
    1,191

    Predefinito

    tre e non tret?
    Cercasi staff per progetto web. Contattami via PM

  5. #5
    A morte i camperoni! L'avatar di Darkito
    Data Registrazione
    Sat May 2006
    Località
    Catania
    Messaggi
    4,083

    Predefinito

    scanf("\n%c", &iniziale);
    il \n va utilizzato nel printf e mai nello scanf

    e poi vedi che stdlib.h la includi per la funzione exit() visto che per i file usi la libreria stdo.h.....
    Ultima modifica di Darkito; 13-09-2006 alle 15:23


    Max Pezzali Mania
    ---> http://www.maxpezzalimania.it

  6. #6
    The Cadarn L'avatar di Derfel
    Data Registrazione
    Sun Jan 2005
    Località
    Ferrara
    Messaggi
    6,212

    Predefinito

    no no no Punto tre &#232; scritto male non cambia niente, e tu darkito sbagli, \n sta anche nello scanf, &#232; un modo per "pulire" lo scan . Le librerie vanno benissimo cos&#236;. Dai che &#232; una cosa semplice s&#249;

  7. #7
    Senior Member L'avatar di clank
    Data Registrazione
    Thu Dec 2004
    Località
    tuxland
    Messaggi
    348

    Predefinito

    Codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    struct persona
    {
        char cognome[20];
        int matricola;
        float media;
    }s[100];
    potrei anche sbagliare ma se è semplice punterei su quell' s[100]; nn mi quadra bene

    p.s.
    se sbaglio nn dite niente, programmo in c...
    di c++ ne so qlc

  8. #8
    Senior Member
    Data Registrazione
    Tue Mar 2004
    Località
    Cagliari
    Messaggi
    1,673

    Predefinito

    E' molto più semplice... purtroppo non posso rispondere, o Derfel mi picchia

  9. #9
    Senior Member L'avatar di clank
    Data Registrazione
    Thu Dec 2004
    Località
    tuxland
    Messaggi
    348

    Predefinito

    Codice:
        if (procedi == 'Y')
        {
            printf("Eseguo il punto tre!\n");
    
            
            for(k='A';k<='Z';k++);
            {

    come fai ad aumentare il numero ad una lettera?
    l'errore dovrebbe essere questo


    p.s.
    se no mi sparo!!!

  10. #10
    The Cadarn L'avatar di Derfel
    Data Registrazione
    Sun Jan 2005
    Località
    Ferrara
    Messaggi
    6,212

    Predefinito

    L'errore non è assolutamente questo ma ci sei vicinisssimo(nel senso che è li vicino, non concettualmente è), qui basta saper programmare in C, quindi tranquillo

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •