Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] File di stringhe

  1. #1
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642

    [C] File di stringhe

    Ciao a tutti, devo scrivere un programma che, dati due file di testo, crei un terzo file "risultati.txt" contenente le parole che compaiono nel primo ma non nel secondo.

    Ho buttato giù questo prog ma nn va (pardon abbiamo fatto l'ultima lezione sui file...le ultime 2 ore e poi nel compito ce lo chiedono..... )
    Ecco il codice che ho fatto:

    codice:
    #include <stdio.h> 
    
    int main(){
     FILE *f1,*f2,*f3;
     int m,n,o,elementi=100,dimensione=1;
     char buf[100];
     char buf1[100];
     f1=fopen("C:\ese\primo.txt", "r");
     f2=fopen("C:\ese\secondo.txt", "r");
     if (f1!=NULL && f2!=NULL){
       f3=fopen("risultati.txt", "w");
       do{ 
         m=fread(buf,dimensione,elementi,f1);
         n=fread(buf1,dimensione,elementi,f2); 
         if (m!=n)
           o=fwrite(buf,dimensione,elementi,f3); 
       }while (m==0 && n==0);      
     }
     else
     {
        printf("Impossibile aprire uno dei due file");
        fclose(f1);
        fclose(f2);
     }     
     getchar();
     getchar();
     return 0;
    }
    cosa ha che non va?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    152
    prova ad includere anche le lib
    string e iostream.h

    #include <string>
    #include <iostream.h>
    andry80

  3. #3
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Scusa la domanda ma tu nn dovresti controllare ogni parola del file 1 con tutte quelle del file 2 per vedere se c'è?

    Perchè cosi com'è sembra che tu verifichi se la prima del primo file corrisponde alla prima del secondo, se la seconda ... e cosi via
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  4. #4
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    si in teoria si! ma si blocca tutto!

  5. #5
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Potresti creare una lista (linked list) con le parole del primo, poi controllare di volta in volta se quelle del secondo sono presenti. Se lo sono le elimini dalla lista ed alla fine restano quelle nn presenti.
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  6. #6
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    ma non si può fare come ho detto io? cioè lavorando solo con i file e usando fgets per prendere parola per parola?

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    non puoi fare cosi, prima devi caricarti tutte le stringhe del primo e del secondo in due liste separate. Quindi per ogni lemento della prima lista scrorrerti la seconda e se non è presente la scrivi nel terzo file.

    Cerca di suddividere il lavoro: inizia a creare una funzione che dato un puntatore a un file restituisce la lista delle parole in esso contenute. Poi fa una funzione che prende una stringa e una lista e restiuisce 1 se la lista contiene la stringa e 0 altrimenti.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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.