elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en C ¿Compilador erróneo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en C ¿Compilador erróneo?  (Leído 3,033 veces)
iCore

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Error en C ¿Compilador erróneo?
« en: 12 Octubre 2010, 08:03 am »

Hola... antes que nada:

Advertencia: no se han publicado mensajes en este tema por aproximadamente 60 días.
A menos que estés seguro que realmente deseas responder, por favor considera mejor crear un nuevo tema.


Bueno muchachos, me veo en problemas idénticos a ese, pues resulta que estoy leyendo el manual "Aprendiendo C en 21 días", voy en el día 1 pues lo comencé hoy...

Pues resulta que me tope con un ejercicio ¿con errores?, a lo mejor es el compilador que estoy usando pues dudo que sean errores, pues si esta en un libro...

Vale, el manual me dice que la sintaxis que me están enseñando es completamente compatible con el ANSI C, pero... lo que no sé es si este compilador es compatible con ANSI C, estoy usando C++ Builder 6 (Ojo en modo consola, extensión C).

Y con el siguiente código (el que me ponen en el libro), me lanza los siguientes 3 errores:

Código
  1. /* PRINT_IT.C- Este programa imprime un listado con numeros de linea*/
  2.  
  3. #include <stdio.h>
  4.  
  5. void do_heading(char *filename);
  6.  
  7. int line, page;
  8.  
  9. main(int argv, char *argc[])
  10. {
  11.    char buffer[256];
  12.    FILE *fp;
  13.  
  14.    if (argv < 2)
  15.    {
  16.        fprintf(stderr, "\nProper usage is: ");
  17.        fprintf(stderr, "\n\nPRINT_IT filename.ext\n");
  18.        exit(1); //Primer error
  19.    }
  20.  
  21.    if ((fp = fopen(argc[1], "r")) == NULL)
  22.    {
  23.        fprintf(stderr, "Error opening file, %s!", argc[1]);
  24.        exit(1);
  25.    }
  26.  
  27.    page = 0;
  28.    line = 1;
  29.    do_heading (argc[1]);
  30.  
  31.    while (fgets(buffer, 256, fp) != NULL)
  32.    {
  33.        if(line % 55 == 0)
  34.                do_heading(argc[1]);
  35.                fprintf (stdprn, "%4d:\t%s", line++, buffer);
  36.    }
  37.  
  38.    fprintf(stdprn, "\f");
  39.    fclose(fp);
  40.    return 0;
  41. }
  42.  
  43. void do_heading(char *filename)
  44. {
  45.    page++;
  46.  
  47.    if (page > 1)
  48.        fprintf(stdprn, "\f");
  49.  
  50.    fprintf(stdprn, "Page: %d, %s\n\n", page, filename);
  51. }

Pues como ven el primer error me lo da "exit(1)", el cual según Daemon Freedom, no tiene definida su cabecera, pero acertadamente según nicolas_cof: "Para utilizar la funcion exit() tenes que incluir la libreria stdlib.h", lo que haría con gusto de no ser que el manual no me dijera que lo usara, pues me alega que:

"Si tiene errores, asegúrese de haber tecleado el programa correctamente".

El segundo error va con "stdprn" (dos veces me da el mismo error) el cual según nicolas_cof: "el problema es que stdprn no esta en la libreria stdio.h ya que no forma parte del estandar ANSI C." lo que me lleva a pensar que:

¿Estaré usando el compilador adecuado?.

De todos modos logre encontrar solución al segundo y tercer error:

Código
  1. FILE *stdprn;
  2. stdprn = fopen("LPT1", "w");

Pero igual me queda la duda de si estaré o no usando el compilador que debo, porque como ya he dicho antes si el libro me dice que así está bien pues debería estarlo no?.

Aquí os dejo el enunciado completo:

Citar
7. Teclee y compile el siguiente programa. Este programa puede usarse para imprimir sus listados. Si se tiene errores, asegúrese de haber tecleado el programa correctamente.

El uso de este programa es PRINT_IT nombre de archivo.ext donde nombre de archivo.ext es el nombre del archivo fuente junto a su extensión. Observe que este programa añade números de línea al listado. (No se preocupe por la longitud de este programa; no espero que lo entienda todavía. Se incluye aquí para ayudarle a comparar las impresiones de sus programas con las que se dan en el libro.)

Luego de tal enunciado me dan el código tal y como se los he dejado arriba.

Por lo que... muchachos ya no se qué hacer, ¿necesito otro compilador? ¿Cuál?... unas cuantas opiniones no vendrían mal... Gracias!.

PD: Como notaron me estoy iniciando en C/C++ así que por favor paciencia jóvenes!

Regards;


« Última modificación: 12 Octubre 2010, 09:41 am por iCore » En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Error en C ¿Compilador erróneo?
« Respuesta #1 en: 12 Octubre 2010, 10:57 am »

¡Buenas!

Olvidate de ese libro. Tiene elementos ajenos al estandar ANSI C. El la sección de libros y papers, tienes libros de Deitel & Deitel que te vendran bien.

Por cierto, en el libro de "Como programar en C/C++" de Deitel & Deitel (2ª edicion), la parte de C++ tampoco corresponde con el estandar actual. Bajate el de "Como programar en C,C++ y Java", que ese si que sigue los estandares.

¡Saludos!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: Error en C ¿Compilador erróneo?
« Respuesta #2 en: 12 Octubre 2010, 13:44 pm »

Si, lo mejor es lo que dice do-while, esos libros de "aprende en 21 dias", son casi mejores para gente que ya sabe algun otro lenguaje de programacion, bajate mejor uno de los que te dice el, y cuando ya tengas algo de practica el Programming in C K&R
En línea

iCore

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Error en C ¿Compilador erróneo?
« Respuesta #3 en: 12 Octubre 2010, 18:17 pm »

¡Buenas!

Olvidate de ese libro. Tiene elementos ajenos al estandar ANSI C. El la sección de libros y papers, tienes libros de Deitel & Deitel que te vendran bien.

Por cierto, en el libro de "Como programar en C/C++" de Deitel & Deitel (2ª edicion), la parte de C++ tampoco corresponde con el estandar actual. Bajate el de "Como programar en C,C++ y Java", que ese si que sigue los estandares.

¡Saludos!

Ahh ya le estaba cogiendo gusto al libro :xD; Será mejor comenzar uno de esos dichosos libros, gracias por vuestra ayuda.

Regards;
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
El compilador no indica la línea en la que se produce el error.
.NET (C#, VB.NET, ASP)
DanteInfernum 0 1,475 Último mensaje 30 Julio 2013, 18:29 pm
por DanteInfernum
error compilador. (solucionado)
Programación C/C++
nolasco281 8 2,777 Último mensaje 4 Abril 2014, 19:35 pm
por nolasco281
¿Error compilador?
Programación C/C++
Baal_30 7 2,589 Último mensaje 19 Junio 2014, 22:55 pm
por Baal_30
RegQueryInfoKey -> Retorna un numero erroneo?
Programación C/C++
someRandomCode 5 2,331 Último mensaje 28 Octubre 2014, 14:15 pm
por someRandomCode
Hardware erroneo
Windows
huerto123 6 2,834 Último mensaje 24 Noviembre 2019, 22:15 pm
por huerto123
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines