Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161

    [C] comparazione file di testo

    Help me please!!

    Devo scrivere un
    ... almeno datemi qualche suggerimento...prgramma C che accetta come parametri di ingresso due file di testo e restituisce in uscita la copia delle righe del secondo file che differiscono dalle corrispondenti righe del primo indicando per ciascuna di esse il numero di riga

    ... almeno datemi qualche suggerimento...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    51
    Ma deve restituire le righe diverse in un altro file??

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Prendi da argc i due parametri (nomi dei file).
    Li apri con fopen(const char * filename, const char *mode)
    Leggi le linee con fgetc(FILE* file_handle)
    Fai confronti e salvi le linee su array di puntatori a char

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    sono proprio i confronti che non mi riescono... errori su errori...

    l'output deve essere visualizzato a video, no su un nuovo file...

  5. #5
    Mostra il codice che hai creato e cerchiamo di aggiustarlo.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  6. #6
    Beh, senza un po' di codice non si riesce ad aiutarti...

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    161
    codice:
    #include <stdio.h>
    #include<string.h>
    
    int main (int argc, char *argv[]) {
    	
    	if (argc != 3) {
    		printf("Parametri non validi - La sintassi corretta e'\n\n" 
    		"%s file_1 file_2\n", argv[0]);
    		exit(1);
    	}
    	
    
    FILE *fp;
    fp=fopen("argv[1]","r");
    if(fp==NULL) {
      printf("ERRORE nell'accesso ai dati");
      exit(1);
    }
    
    FILE *fp1;
    fp1=fopen("argv[2]","r");
    if(fp1==NULL) {
      printf("ERRORE nell'accesso ai dati");
      exit(0);
    }
    
    char s1[] = fgetc(&fp);
    char s2[] = fgetc(&fp1);
    
    strcmp(s1, s2); 
    
    [...]
    
    }

  8. #8
    codice:
    char s1[] = fgetc(&fp);
    char s2[] = fgetc(&fp1);
    Questo pezzo è sbagliato. Come puoi assegnare a due array di char (di cui non specifichi nemmeno la dimensione) un valore di tipo int? Secondo me la cosa migliore è usare un buffer e confrontare man mano i singoli pezzetti di file.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    inoltre:

    codice:
    fp=fopen("argv[1]","r");
    non ha senso, cerchi di aprire il file di nome argv[1]

    codice:
    fp=fopen(argv[1],"r");
    così è corretto

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

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.