Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [c] elimina stringhe doppioni su file - comportamento non corretto

    Salve,

    sto facendo un programma per eliminare i doppioni,
    per questo programma avevo già aperto una discussione
    in precedenza http://forum.html.it/forum/showthread.php?s=&threadid=1494491] precedente discussione [/URL] , ma dopo le varie correzioni apportate
    continua ad avere un comportamento anomalo ( non stampa sebbene la funzione sia corretta, non riconosce sempre bene i doppioni ) che
    non riesco a spiegarmi in nessun modo, anche perchè le singole funzioni
    funzionano.

    grazie!!!

    codice:
    int main(void) {    
    
    char* filename = malloc (sizeof (char*));    
    char* filenout = malloc (sizeof (char*));        
    
    char* first  = malloc( sizeof(char*));    
    char* second = malloc( sizeof(char*));        
    
    FILE* source;        
    
    int flag = 1;        
    int egu = 0;        
    printf(" <-------- DUPLICATE CLEANER -------->\n\n\n");        
    
    printf(" inserire il nome del file di input:");     
     scanf("%s", filename);        
    
    filenout = namer(filename);        
    
    printf("\n <-------- pulizia in corso -------->\n\n\n");        
    
    source = fopen(filename, "r");        
    
    flag = myget(source, first);   
        
     if( flag != 0 )       
       flag = myget(source, second);           
    
    while( flag != 0 ){             
    
        egu = strcmp(first, second);              
        
        if( egu != 0) {           
           // diversi: si stampa first e si effettua la promozione di second           
           myprint( filenout, first);           
           strcpy(second, first);                      
    
           flag = myget(source, second);       }       
        else{          
           //  uguali: si cambia second           
          flag = myget(source, second);       }               
    }       
    
    fclose(source);    
    
    printf("\n <-------- pulizia terminata!! -------->");   
    
    system("PAUSE");   
    
    return 0;  
    
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma quali correzioni ?

    Mi sembra che avevi problemi nell'allocazione dello spazio delle stringhe ...

    ... e li hai ancora ...

    codice:
    char* filename = malloc (sizeof (char*));    
    char* filenout = malloc (sizeof (char*));        
    
    char* first  = malloc( sizeof(char*));    
    char* second = malloc( sizeof(char*));
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho modificato l'allocazione dinamica in base alle informazioni a mia disposizione nel seguente modo:

    codice:
       
    
    char* filename = (char *) malloc (sizeof (char));
    char* filenout = (char *) malloc (sizeof (char));     
    
    char* first  = (char *) malloc (sizeof (char));    
    char* second = (char *) malloc (sizeof (char));
    I problemi descritti in precedenza sono tutt'ora presenti.

  4. #4
    É come se riconoscesse tutte le stringhe come diverse

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusa, così come hai scritto, hai allocato un solo carattere per ogni stringa.

    Ti sembra sufficiente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.