Visualizzazione dei risultati da 1 a 4 su 4

Discussione: file di testo in c

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32

    file di testo in c

    Salve a tutti volevo chiedervi un piccolo aiuto... ho scritto un programma su file di testo in c che in pratica in input ricevo 2 file contenenti nomi di squadre di calcio e goal e un terzo un file di output con i vari esiti "1", "x", "2"; il primo contiene nome e goal fatti dalle squadre che giocano in casa, il secondo nome e goal delle squadre ospiti;il programma è compilato bene e funzionerebbe pure ma nel file di output invece dei caratteri che ho scelto escono dei caratteri strani come mai?? Grazie a tutti per le risposte al mio post.
    Questo è il codice che ho implementato:

    codice:
    const int max_dim=100;
    typedef char stringa[max_dim];
    
    struct calcio
    {
           stringa squadra;
           int goal;
    };
    
    typedef char carattere[max_dim];
    typedef calcio vettore[max_dim];
    
    void leggi_vett(vettore, int &, const char *);
    void verifica_esito(vettore, vettore, int, carattere);
    void salva_sched(carattere, int, const char *);
    [code]
    #include <stdlib.h>
    #include <stdio.h>
    #include "lib.h"

    int main()
    {
    vettore v1, v2;
    int riemp1, riemp2;
    carattere esito;

    leggi_vett(v1, riemp1, "input1.txt");
    leggi_vett(v2, riemp2, "input2.txt");

    if(riemp1!=riemp2)

    printf("riempimenti diversi non continuo /n/n");

    else
    {
    verifica_esito(v1, v2, riemp1, esito);
    salva_sched(esito, riemp1, "output.txt");

    }

    system("PAUSE");
    return 0;
    }
    [/code ]

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "lib.h"
    
    void leggi_vett(vettore v, int &riemp, const char *nomefile)
    {
         int i;
         FILE* fp=fopen(nomefile, "r");
         
         if(!fp)
         {
                printf("file non trovato /n/n");
                system("PAUSE");
                exit(1);
         }
         
    fscanf(fp, "%d", &riemp);
    for(i=0;i<riemp;i++)
                        {
                        fscanf(fp, "%s", &v[i].squadra);
                        fscanf(fp, "%d", &v[i].goal);
                        }
    fclose(fp);                    
                        
    }
    
    void verifica_esito(vettore v1, vettore v2, int riemp1, carattere esito)
    {
         int i;
         
         for(i=0;i<riemp1;i++)
         {
                              if(v1[i].goal>v2[i].goal)
                              esito[i]='1';
                              
                              else
                              if(v1[i].goal<v2[i].goal)
                              esito[i]='2';
                              
                              else
                              esito[i]='x';
         }
         
    }
    
    void salva_sched(carattere esito, int riemp1, const char *nomefile)
    {
         int i;
         FILE* fp=fopen(nomefile, "w");
         
          if(!fp)
         {
                printf("file non trovato \n\n");
                system("PAUSE");
                exit(1);
         }
         
    for(i=0;i<riemp1;i++)
                         fprintf(fp, "%c", &esito[i]);
    
    fclose(fp);
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Perchè passi il puntatore al carattere in

    fprintf(fp, "%c", &esito[i]);

    ?

    Dovrebbe essere

    fprintf(fp, "%c", esito[i]);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32
    Ecco grazie mille ora funziona ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32
    ah un'altra cosa...se io non salvo la cartella del mio progetto nella cartella del mio IDE il programma mi direbbe "file non trovato"...non c'è un'istruzione tipo app.path del VB??

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.