[C] liste e file

Pubblicità

Trigun86

Utente Attivo
Messaggi
24
Reazioni
0
Punteggio
25
salve a tutti...ho questo problema dato il seguente codice dovrei implementare le funzioni sotto riportate
Codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 4
typedef struct data *next;


typedef struct data{
        char string1[20];
        char string2[20];
        int dim_string1;
        int dim_string2;
        next successivo;
        }data;
void crea_file(char *);
void crea_lista(char *[] ,char[]);
void cambio_testa_coda(data **);
void scrivi_file(data*,FILE *);


void scrivi_file(data *,FILE *);  /*RICORSIVA */

int main(){
    char *parole[NUM]={"agosto","lunare","lunatico","agognato"};
    char v[20];
    data *head;
    FILE *in, *out;
    printf("Inserire il nome del file da creare: ");
    scanf("%s",v);
    crea_file(v);
    crea_lista(parole,in,&head);
   
    
    system("PAUSE");
    return 0;
}

Funzione crea_file questa funzione mi crea un file e con all'interno delle parole e successivamente le confronta con l'array confronto e vede se le parole contenute in confronto sono il prefisso delle parole inserite dall'utente, copiando tutto in un nuovo file.
Codice:
void crea_file(char *v){
     struct data d={"",""};
     FILE *fp,*out,*fp2;
     int fine=0;
     int l=0;
     int i=0;
     int j=0;
     int cont=0;
     char buff[20];
     char parole[30];
     char *confronto[NUM]={"ago","luna","sole","mare"};
     if((fp=fopen(v,"w"))==NULL){ printf("ERRORE\n"); }
     
     else
     
     while(!fine){
     printf("Inserisci parola:");
     scanf("%s",parole);
     fprintf(fp,"%s\n",parole);
     cont++;
     printf("Finito? (Si=1, No=0) ");
     scanf("%d",&fine);
     
     }
      fclose(fp);
    fp=fopen(v,"r");
    out=fopen("copia.txt","w");
    
                      for(i=0;i<cont;i++){
                                        
                      fscanf(fp,"%s",buff);
                      
                     
                      
                      for(j=0;j<4;j++){  
                                         l=strlen(confronto[j]);
                      
                      if(!strncmp(buff,confronto[j],l)){
                      
                                                              fprintf(out,"%s\n",buff);
                      printf("\ntrovata la parola: %s in: %s",confronto[j],buff);
                      }
                                       
                      }
                     
    }                 
     printf("\n");
     printf("\n...copia in corso...\n");
    
      fclose(out);
      fclose(fp);

il mio problema sorge nel momento in cui devo copiare la parola che contiene il prefisso sole mare ago o luna in una struttura insieme al prefisso stesso ad esempio...

l'utente inserisce mareggiata lunatico... l'output dovrebbe essere
lista
string1=mare
string2=mareggiata
dim_str1=4
dim_str2=10

lista
string1=luna
string2=lunatico
dim_str1=4
dim_str2=8

tutto copiato in un file...io pur troppo questo passaggio non riesco a farlo...potreste aiutarmi...grazie mille

---------- Post added at 18:29 ---------- Previous post was at 17:28 ----------

in pratica dovrei associare all'interno di un ciclo le parole trovate con gli elementi della lista
pseudocodice: d.string1=elemento trovato...

conoscete qualche funzione utile???? grazie
 
Pubblicità
Pubblicità
Indietro
Top