Puedes recorrer la línea caracter por caracter y cuando llegues a un paréntesis empiezas a copiar a otro archivo y cuando llegues a ')' paras de copiar.
.......................................
¿Y por qué no copiarlo todo de golpe?.
Esta es mi salida al ejecutar el código que propongo y lo que justamente escribe en el fichero de salida:
agregar001,serrucho,100.00,5
agregar010,martillo,20.00,10
agregar012,escalera,300.00,10
Process returned 0 (0x0) execution time : 1.099 s
Press any key to continue.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NOM_ARCHIVO_IN "Entrada3.txt"
#define NOM_ARCHIVO_OUT "Entrada4.txt"
#define NUM_CHARS 256
int main(void){
FILE *entrada,*salida;
char linea[NUM_CHARS],linea_out[NUM_CHARS];
char *p;
if ((entrada = fopen(NOM_ARCHIVO_IN, "r")) == NULL){
perror(NOM_ARCHIVO_IN);
return EXIT_FAILURE;
}
if ((salida = fopen(NOM_ARCHIVO_OUT, "w")) == NULL){
perror(NOM_ARCHIVO_OUT);
return EXIT_FAILURE;
}
while (fgets(linea, NUM_CHARS, entrada) != NULL){
p = strtok (linea,"()");
while (p != NULL ) {
if (strcmp(p,"agregar"))
strcpy(linea_out,p);
fprintf(salida,"%s",linea_out);
printf ("%s",p);
p = strtok (NULL, "()");
}
}
fclose(entrada);
fclose(salida);
return EXIT_SUCCESS;
}
¡¡¡¡ Saluditos! ..... !!!!