Curso de Programación en C/Prog114

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog114

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 #define CNTL_Z '\032'   /* eof marker in DOS text files */
 6 #define SLEN 50
 7 
 8 int main( void )
 9 {
10   char file[SLEN],
11        ch;
12 
13   FILE *fp;
14 
15   long count,
16        last;
17 
18   printf( "Escribe el nombre del archivo a usar: ");
19   fgets( file, SLEN - 2, stdin );
20 
21   if( *(file + strlen( file ) -1 ) != '\n' )
22   {
23     printf( "El nombre que entraste es demasiado largo.\n"
24             "Solo %d chars MAX\n", SLEN - 2 );
25     exit(1);
26   }
27   else
28     *(file + strlen( file ) -1 ) = '\0'; 
29   
30   if( ( fp = fopen( file, "rb" ) ) == NULL )
31   {
32     printf( "No puedo abrir el archivo %s\n", file );
33     exit( 1 );
34   }
35 
36   fseek( fp, 0L, SEEK_END );
37   last = ftell( fp );
38 
39   for( count = 1L; count <= last; count++ )
40   {
41     fseek( fp, -count, SEEK_END );  /* Leer en reversa SEEK_CUR SEEK_SET */
42     ch = getc( fp );
43     if( ch != CNTL_Z && ch != '\r' )
44       putchar( ch );
45   }
46 
47   putchar( '\n' );
48   fclose( fp );
49 
50   return 0;
51 }

Resultado

[rrc@llawyr CClase]$ gcc -Wall -o Prog114 Prog114.c
[rrc@llawyr CClase]$ ./Prog114
Escribe el nombre del archivo a usar: MiArchivo 
No puedo abrir el archivo MiArchivo
[rrc@llawyr CClase]$ ./Prog114
Escribe el nombre del archivo a usar: Prog1.c


}
;0 nruter   
;)mun ,"n\.remirp le se le euqrop d% se otirovaf orem��n iM"(ftnirp   
;)"n\.elpmis"(ftnirp   
/*  noitcnuf )(ftnirp eht esu */ ;)" arodatupmoc anu yoS"(ftnirp   

/*          mun a rolav anu rangisa */                  ;1 = mun   
/* mun adamall elbairav anu rinifed */                  ;mun tni   
{
/*               elpmis amargorp nU */               )diov(niam tni

>h.oidts< edulcni#

Explicación