Curso de Programación en C/Prog111
Ir a la navegación
Ir a la búsqueda
Prog111
1 #include <stdio.h>
2 #include <stdlib.h> // prototipo de exit()
3 #include <string.h> // prototipo de strcpy() y strcat()
4
5 #define LEN 40
6
7 int main( int argc, char *argv[] )
8 {
9 FILE *IngresoArchivo,
10 *SaliddaArchivo;
11
12 int ch,
13 Contar = 0;
14
15 char ArchivoNombre[LEN];
16
17 if (argc < 2)
18 {
19 fprintf( stderr, "Usado: %s ArchivoNombre\n", argv[0] );
20 exit(1);
21 }
22
23 if( ( IngresoArchivo = fopen( argv[1], "r" ) ) == NULL )
24 {
25 fprintf( stderr, "No puedo abrir el archivo \"%s\"\n",
26 argv[1]);
27 exit(2);
28 }
29
30 strncpy( ArchivoNombre, argv[1], LEN - 5 );
31 ArchivoNombre[LEN - 5] = '\0';
32 strcat( ArchivoNombre,".red" );
33
34 if( ( SaliddaArchivo = fopen( ArchivoNombre, "w" ) ) == NULL )
35 {
36 fprintf( stderr, "No puedo crear el archivo de salida.\n" );
37 exit(3);
38 }
39
40 while( ( ch = getc( IngresoArchivo ) ) != EOF )
41 if( !( Contar++ %3 ) )
42 putc( ch, SaliddaArchivo );
43
44 if( fclose( IngresoArchivo ) != 0 || fclose( SaliddaArchivo ) != 0 )
45 fprintf( stderr, "Error: No puedo cerrar los archivos\n" );
46
47 return 0;
48 }
Resultado
[rrc@llawyr CClase]$ gcc -Wall -o Prog111 Prog111.c [rrc@llawyr CClase]$ cat Prog111.infile So even Eddy came oven ready. [rrc@llawyr CClase]$ ./Prog111 Prog111.infile [rrc@llawyr CClase]$ cat Prog111.infile.red Send money [rrc@llawyr CClase]$