RISOLTO [C] Confrontare 2 file

Pubblicità

killon

Utente Attivo
Messaggi
248
Reazioni
17
Punteggio
44
Salve a tutti,
dovrei confrontare 2 file in c, i file gli ho "scaricati" su una stringa, contengono dei nomi e dovrei confrontare quali nomi sono gli stessi in entrambi i file, ho utilizzato strcmp ma mi da un valore abnorme di ritorno (cosa che non ho ancora capito come mai), vi chiedo dunque come potrei aggirare il problema, ho solamente bisogno di capire come mai non vada, grazie mille per eventuali risposte.
C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>




int main(int argc, char *argv[]) {
 
    FILE *primo;
    FILE *secondo;
    char uno[100],due[100],parola[30];
    int fine,cont;
    int n=100;
 
 
    primo=fopen("prima.txt","r");
    secondo=fopen("seconda.txt","r");

    //APRO PRIMO
    while(!feof(primo)){        
        fine=(fgets(uno,n,primo)==NULL);
        if(!fine || !feof(primo)){
            printf("%s",uno);
        }
    }
 
 
 
    //APRO SECONDO
    while(!feof(secondo)){        
        fine=(fgets(due,n,secondo)==NULL);
        if(!fine || !feof(secondo)){
            printf("*%s",due);
        }
    }

    int comparazione= strcmp(uno, due);//?
 
    printf("\ncomparazione %d",&comparazione);
         
}

}
 
Ultima modifica:
Spiegati meglio: devi confrontare due file e controllare che siano identici (indipendentemente da quello che contengono) o devi capire che i nomi contenuti nei due file siano gli stessi, anche se non nello stesso ordine? Le soluzioni dei due casi sono completamente diverse

Quello che hai scritto e' comunque sbagliato, in quanto confronti solo le ultime righe che leggi, che poiche' sono la fine del file non contengono nulla :)
 
Spiegati meglio: devi confrontare due file e controllare che siano identici (indipendentemente da quello che contengono) o devi capire che i nomi contenuti nei due file siano gli stessi, anche se non nello stesso ordine? Le soluzioni dei due casi sono completamente diverse

Quello che hai scritto e' comunque sbagliato, in quanto confronti solo le ultime righe che leggi, che poiche' sono la fine del file non contengono nulla :)
ciao e grazie per la risposta, sostanzialmente ci sono dei nomi delle città, devo confrontare quanti nomi hanno in comune i 2 file :patpat:
 
Ah. Molto facile ma hai due opzioni: prima leggi i due file e metti tutto in memoria. Devi ossia creare due vettori si stringhe, uno per ogni file, con il noioso problem della allocazione dinamica. Poi basta che fai un doppio loop, per ogni valore in un vettore guarda se nel secondo ce ne sia uno uguale.
Oppure, senza nessuna allocazione dinamica, leggi una stringa su un file, e guarda se e' anche presente nel secondo. Non devi tutte le volte aprire il secondo file, basta che fai un fseek() all'inizio.
A te la scelta.
 
Ah. Molto facile ma hai due opzioni: prima leggi i due file e metti tutto in memoria. Devi ossia creare due vettori si stringhe, uno per ogni file, con il noioso problem della allocazione dinamica. Poi basta che fai un doppio loop, per ogni valore in un vettore guarda se nel secondo ce ne sia uno uguale.
Oppure, senza nessuna allocazione dinamica, leggi una stringa su un file, e guarda se e' anche presente nel secondo. Non devi tutte le volte aprire il secondo file, basta che fai un fseek() all'inizio.
A te la scelta.
oddio, grazie mille, opterò per la prima opzione, ti ringrazio per il tuo tempo
 
Pubblicità
Pubblicità
Indietro
Top