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

    Ragazzi avrei bisogno di un piccolo aiuto... Sto facendo un programma sui file di testo in c che in pratica dati 2 file in input di cui il primo contenente i nomi di squadre di calcio che giocano in casa e goal fatti dalla stessa squadra , il secondo contiene i nomi delle squadre che giocano in trasferta e i goal fatti dalle squadre ospiti, scriva su un ulteriore file esito "1" per la vittoria, "2" per la sconfitta e "x" per il pareggio; il programma viene compilato bene però mi stampa a video il messaggio di "file non trovato" anche se ho creato nella stessa cartella del mio progetto tutti e 3 i file.txt necessari.
    Questo è il codice e grazie per la vostra collaborazione
    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(vettore, vettore, int, carattere);
    void stampa_sched(carattere, int, const char*);
    codice:
    #include <iostream>
    #include "lib.h"
    
    using namespace std;
    
    int main()
    {
        vettore v1, v2;
        carattere esito;
        
        int riemp1, riemp2;
        
        leggi_vett(v1, riemp1, "input1.txt");
        leggi_vett(v2, riemp2, "input2.txt");
        
        if(riemp1!=riemp2)
                          cout<<"riempimenti diversi, non si puo' continuare"<<endl;
                          
       else
       {
       verifica(v1, v2, riemp1, esito);
       stampa_sched(esito, riemp1, "output.txt");
       }
       
       
    system("PAUSE");
    return 0;
    }
    codice:
    #include <iostream>
    #include "lib.h"
    #include <string.h>
    
    using namespace std;
    
    void leggi_vett(vettore v, int &riemp, const char *nomefile)
    {
         int i;
         FILE* fp=fopen(nomefile, "r");
         
         if(!fp)
         {
                cout<<"file non trovato"<<endl;
                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);
    } 
    
    }
    
    void verifica(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 stampa_sched(carattere esito, int riemp1, const char *nomefile)
    {
         int i;
         
         FILE* fp=fopen(nomefile,"w");
         
        
         if(!fp)
         {
                cout<<"file non trovato"<<endl;
                system("PAUSE");
                exit(1);
                
         }
         
    for(i=0;i<riemp1;i++)
                         fprintf(fp, "%c", esito[i]);
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Probabilmente la cartella in cui sono i file non è quella in cui li va a cercare il programma (magari quella attuale per l'IDE che usi è un'altra).

    Prova ad indicare un percorso assoluto ...

    P.S. Ma perchè utilizzi codice C e C++ mischiato? Usi la cout e il namespace std, ma poi apri i file con la fopen ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32
    Il professore di università così ce li ha fatti vedere e lo assecondo; comunque ora ho riscritto il codice tutto in c senza cout e affini xD

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    32
    Ah dimenticavo...per percorso assoluto intendi che invece di mettere solo "input.txt" dovrei mettere ad esempio C:\miei_programmi..."???

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 © 2025 vBulletin Solutions, Inc. All rights reserved.