Annuncio

Collapse
No announcement yet.

C++ Chi trova l'errore?

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts

  • 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!!
    Last edited by Derfel; 13 September 2006, 10:40.
    http://img46.imageshack.us/img46/3987/userbarer7.jpg





    http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

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

    Comment


    • #3
      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
      http://img46.imageshack.us/img46/3987/userbarer7.jpg





      http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

      Comment


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

        Comment


        • #5
          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.....
          Last edited by Darkito; 13 September 2006, 15:23.

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

          Comment


          • #6
            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;
            http://img46.imageshack.us/img46/3987/userbarer7.jpg





            http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

            Comment


            • #7
              [CODE]#include <stdio.h>
              #include <stdlib.h>

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

              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
              sigpic

              Comment


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

                Comment


                • #9
                  [CODE]
                  if (procedi == 'Y')
                  {
                  printf("Eseguo il punto tre!\n");


                  for(k='A';k<='Z';k++);
                  {
                  [/CODE]


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


                  p.s.
                  se no mi sparo!!!
                  sigpic

                  Comment


                  • #10
                    L'errore non è assolutamente questo ma ci sei vicinisssimo(nel senso che è li vicino, non concettualmente è), qui basta saper programmare in C, quindi tranquillo
                    http://img46.imageshack.us/img46/3987/userbarer7.jpg





                    http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

                    Comment


                    • #11
                      potrei sbagliarmi ma nn ho mai visto l'opzione 'wt' nelle fopen
                      sigpic

                      Comment


                      • #12
                        c'&#232; eccome

                        Clank eri vicinissimo fisicamente all'errore, non cambiare riga
                        http://img46.imageshack.us/img46/3987/userbarer7.jpg





                        http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

                        Comment


                        • #13
                          c***o, come ho fatto a non rendermene conto: nel for non c'&#232; ne vanno punti e virgola!!!!!
                          sigpic

                          Comment


                          • #14
                            Originariamente Scritto da clank Visualizza Messaggio
                            c***o, come ho fatto a non rendermene conto: nel for non c'&#232; ne vanno punti e virgola!!!!!
                            Evviva!!! Errore trovato, bravissimo
                            http://img46.imageshack.us/img46/3987/userbarer7.jpg





                            http://gamesurf.tiscali.it/forum/sig...gpic6655_7.gif

                            Comment


                            • #15
                              c'&#232; ne &#232; voluto, uno &#232; cos&#236; impegnato a guardare il funzionamento del codice piuttosto del suo stato fisico!!




                              ----------------

                              ora che il mistero &#232; svelato, mi potresti spiegare il significato dell'opzione wt o.O
                              Last edited by clank; 13 September 2006, 19:09. Motivo: aggiunta
                              sigpic

                              Comment

                              Working...
                              X