Input e output come argomento main

di il
3 risposte

Input e output come argomento main

Salve a tutti devo fare un programma che prende due file .txt uno di input con una sequenza di stringhe terminate da NULL e un file vuoto in output dove devo inserire una per riga le parole del file scritte al contrario...io ho scritto questo :
 #include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]){
   if (argc > 3){
       fprintf(stderr, "use: %s input.txt output.txt\n", argv[0]);
	   return -1;
   }
   char *c;
   int l,i;
   FILE *in, *out;
   out=fopen(argv[2],"w");
   in=fopen(argv[1],"r");
   while((fgets(c,1024,in))!=NULL){
       l=strlen(c);
       for(i=l-1;i>=0;i--){
           fprintf(out,"%c",c[i]);
       }
       fprintf(out,"\n");
   }
}

 
Ma ovviamente quando do in esecuzione

a.out "input.txt" "output.txt"

Mi dice che non prende i file.
Qualcuno mi può aiutare?

3 Risposte

  • Re: Input e output come argomento main

    "dice che non prende i file"?

    Magari mostra l'errore più precisamente ...

    Sicuramente un errore c'è e devi correggerlo ...

    c deve essere un vettore di char

    char c[1024];

    e non un puntatore
  • Re: Input e output come argomento main

    Hai ragione sul fatto della specifica dell'errore che ho dato ma non avevo il PC sotto mano perché ero a lezione...grazie mille funziona pensavo che la fgets funzionasse come la strcpy e che quindi passava al puntatore pure la lunghezza
  • Re: Input e output come argomento main

    Anche la strcpy funziona con un buffer allocato, non c'è differenza. Avresti usato male anche la strcpy.
Devi accedere o registrarti per scrivere nel forum
3 risposte