Duda con flex

veréis, intento aprender flex para unas prácticas que tendré que hacer en unas semanas, con expresiones regulares y tal, quiero ir aprendido.

Tengo que hacer un programa que lea de un fichero y escriba en otro fichero lo mismo con algunos cambios. Por ejemplo, que cambie cada a por 1. El problema lo tengo es que no sé cómo hacer que el texto "tratado" sea escrito en el fichero de salida. El texto que dejo pasar va directamente.

A ver si sabéis cómo puedo escribir en el fichero. Esto es lo que llevo hecho:

%%
a  putchar('1');  /* AQUÍ ESTÁ EL PROBLEMA */

%%
main(argc,argv)
int argc;
char **argv;
{
   if (argc > 2){
      FILE *fileIn;
      FILE *fileOut;
     
      fileIn = fopen(argv[1], "r");
      if (!fileIn){
         fprintf(stderr, "No se puede abrir %s\n", argv[1]);
         exit(1);
      }
      fileOut = fopen(argv[2], "w");
         if (!fileOut){
         fprintf(stderr, "No se puede abrir %s\n", argv[2]);
         exit(1);
      }
      yyin = fileIn;
      yyout = fileOut;
   }
   yylex();
}


Un saludo y muchas gracias

EDITADO -----

na, creo que ya lo he solucionado, era un poco una tontería... aunque no sé si es la mejor solución. Sólo he cambiado la línea del problema por:
a     fputc('1',yyout);

Pero pensaba que habría otra más fácil...

Weno, voy a seguir aprendiendo :P
0 respuestas