Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ANTRUCK en 28 Julio 2011, 18:46 pm



Título: Ayuda a solucional error [Solucionado]
Publicado por: ANTRUCK en 28 Julio 2011, 18:46 pm
Cuando compilo esto me da un error en la siguiente linea:
Código
  1. main ( int argv, char *argv [] )

Tambien en esta linea
Código
  1. void do_heanding(char *filename")
[/color][/size]

Código
  1. #include <stdio.h>
  2.  
  3. void do_heanding(char *FILENAME);
  4.  
  5. int line, page;
  6.  
  7. main ( int argv, char *argv [] ) Aqui el error como lo soluciono?
  8.  
  9. {
  10.    char buffer [256];
  11.    FILE *fp;
  12.  
  13.    if (argv < 2 )
  14.    {
  15.         fprintf(stderr, "\nProper usage is: " );
  16.        fprintf(stderr, "\n\nPrint_it filename.ext\n");
  17.        exit(1);
  18.    }
  19.  
  20.    if ((fp = fopen (argv[1], "r"))== NULL)
  21. {
  22.  
  23.  
  24.        fprintf(stderr,"error opening file, %s!", argv[1]);
  25.        exit(1);
  26. }
  27.  
  28.  
  29.    page = 0;
  30.    line = 1;
  31.    do_heanding( argv [1]);
  32.    while (fgets( buffer, 256, fp) != NULL )
  33.  
  34.    {
  35.        if ( line % 55 == 0 )
  36.        do_heanding( argv [1]);
  37.  
  38.        fprintf(stdprn, "%4d:\t%s", line++, buffer);
  39.    }
  40.    fprintf(stdprn, "\f");
  41.    fclose(fp);
  42.    return 0;
  43.    }
  44.    void do_heanding(char *filename") Segundo error ?
  45.                     {
  46.                         page++;
  47.  
  48.                         if (page > 1)
  49.                         fprintf(stdprn, "<\f");
  50.  
  51.                         fprintf(stdprn,"page: %d, %s\n\n", page,filename);
  52.                     }
  53.  


Título: Re: Ayuda a solucional error
Publicado por: naderST en 28 Julio 2011, 18:56 pm
El primer error tienes que ponerle el tipo de dato a main (int) y el segundo error es en esta parte al parecer:

fprintf(stdprn, "<\f");

Sustituyelo por esto:

fprintf(stdprn, "%f");


Título: Re: Ayuda a solucional error
Publicado por: ANTRUCK en 28 Julio 2011, 19:06 pm
El primer error tienes que ponerle el tipo de dato a main (int) y el segundo error es en esta parte al parecer:

fprintf(stdprn, "<\f");

Sustituyelo por esto:

fprintf(stdprn, "%f");

ya lo cambie como me dijiste pero aun sigue el error  :-(:

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


Título: Re: Ayuda a solucional error
Publicado por: Ferno en 28 Julio 2011, 19:07 pm
Bueno ya respondieron algo, además fijate que los dos parámetros de la función main tienen el mismo nombre!! El primero es int argc (por arg counter).

En ésta línea:

Código
  1. void do_heanding(char *filename)
  2.  

Debías sacarle las dobles comillas (supongo que fue un error de tipeo pero por las dudas je).

Y según leí por ahí stdprn no es un stream predefinido en ANSI C. Change it!


Título: Re: Ayuda a solucional error
Publicado por: Queta en 28 Julio 2011, 19:17 pm
A parte de que exit pertenece a stdlib (http://www.cplusplus.com/reference/clibrary/cstdlib/exit/ (http://www.cplusplus.com/reference/clibrary/cstdlib/exit/)).

El primer parámetro de fprintf lo debes cambiar por stdout. Y finalmente, como bien te dijo Ferno, el primer parámetro en el main es argc por lo que también tendrás que cambiar:

Código
  1. if(argv < 2 )

por

Código
  1. if(argc < 2 )



Título: Re: Ayuda a solucional error
Publicado por: naderST en 28 Julio 2011, 19:29 pm
Te falta 1 argumento en fprintf() http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/


Título: Re: Ayuda a solucional error
Publicado por: ANTRUCK en 28 Julio 2011, 20:00 pm
Joder le falte al respeto a todo los códigos en un solo programa  :xD

Revisare el libro a ver de que siglo es  :xD