Creazione di tot file di testo da elenco txt

di Anonimizzato24933 il
1 risposte
Ciao, devo creare un certo numero di file .txt nominandoli secondo un elenco contenuto in un file di testo (ogni riga un file).
questo il formato dell'elenco:

CDU-C-AR-COO-PLA-B4P-001.txt
CDU-C-AR-COO-PLA-B4P-002.txt
CDU-C-AR-COO-PLA-B4T-001.txt
CDU-C-AR-COO-PLA-B4T-002.txt
CDU-C-AR-COO-PLA-B3P-001.txt
CDU-C-AR-COO-PLA-B2P-001.txt
CDU-C-AR-COO-PLA-B1P-001.txt
CDU-C-AR-COO-PLA-B3T-001.txt
CDU-C-AR-COO-PLA-B1T-001.txt
..........

questo ciò che ho pensato...
solo che non funziona, mi restituisce le stringhe a video ma dei file nemmeno l'ombra...
Grazie per l'aiuto che potrete darmi
#include<stdlib.h>
#include<stdio.h>

int main() {
  FILE *fd;
  FILE *fi;
  char buf[200];
  char *res;
		/* apre il file elenco */
  fd=fopen("provatabula.txt", "r");
  if( fd==NULL ) {
    perror("Errore in apertura del file");
    exit(1);
  }


		/* legge ogni riga, */   
  while(1) {
    res=fgets(buf, 200, fd);
    if( res==NULL )
      break;
      /*apre chiude (dovrebbe) un file col nome della riga letta */
    fi=fopen(buf,"w");
	fclose(fi);
	/* stampa ogni riga*/  
    printf("%s", buf);
  }


		/* chiude il file elenco */
  fclose(fd);

  return 0;
}

1 Risposte

  • La fgets (come da documentazione) include nel buffer letto il carattere \n a fine stringa. Devi toglierlo prima di creare il file.
    /*apre chiude (dovrebbe) un file col nome della riga letta */
    buf[strlen(buf) - 1] = NULL;
Devi accedere o registrarti per scrivere nel forum
1 risposte