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