Ayuda a solucional error [Solucionado]

Iniciado por ANTRUCK, 28 Julio 2011, 18:46 PM

0 Miembros y 1 Visitante están viendo este tema.

ANTRUCK

Cuando compilo esto me da un error en la siguiente linea: main ( int argv, char *argv [] )

Tambien en esta linea void do_heanding(char *filename")
[/color][/size]

#include <stdio.h>

void do_heanding(char *FILENAME);

int line, page;

main ( int argv, char *argv [] ) Aqui el error como lo soluciono?

{
   char buffer [256];
   FILE *fp;

   if (argv < 2 )
   {
        fprintf(stderr, "\nProper usage is: " );
       fprintf(stderr, "\n\nPrint_it filename.ext\n");
       exit(1);
   }

   if ((fp = fopen (argv[1], "r"))== NULL)
{


       fprintf(stderr,"error opening file, %s!", argv[1]);
       exit(1);
}


   page = 0;
   line = 1;
   do_heanding( argv [1]);
   while (fgets( buffer, 256, fp) != NULL )

   {
       if ( line % 55 == 0 )
       do_heanding( argv [1]);

       fprintf(stdprn, "%4d:\t%s", line++, buffer);
   }
   fprintf(stdprn, "\f");
   fclose(fp);
   return 0;
   }
   void do_heanding(char *filename") Segundo error ?
                    {
                        page++;

                        if (page > 1)
                        fprintf(stdprn, "<\f");

                        fprintf(stdprn,"page: %d, %s\n\n", page,filename);
                    }

naderST

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");

ANTRUCK

Cita de: 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");

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

#include <stdio.h>

void do_heanding(char *FILENAME);

int line, page;

int main ( int argv, char *argv [] )

{
    char buffer [256];
    FILE *fp;

    if (argv < 2 )
    {
         fprintf(stderr, "\nProper usage is: " );
        fprintf(stderr, "\n\nPrint_it filename.ext\n");
        exit(1);
    }

    if ((fp = fopen (argv[1], "r"))== NULL)
{


        fprintf(stderr,"error opening file, %s!", argv[1]);
        exit(1);
}


    page = 0;
    line = 1;
    do_heanding( argv [1]);
    while (fgets( buffer, 256, fp) != NULL )

    {
        if ( line % 55 == 0 )
        do_heanding( argv [1]);

        fprintf(stdprn, "%4d:\t%s", line++, buffer);
    }
    fprintf(stdprn, "%f");
    fclose(fp);
    return 0;
    }
    void do_heanding(char *filename")
                     {
                         page++;

                         if (page > 1)
                         fprintf(stdprn, "%f");

                         fprintf(stdprn,"page: %d, %s\n\n", page,filename);
                     }

Ferno

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:

void do_heanding(char *filename)


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!

Queta

#4
A parte de que exit pertenece a stdlib (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:

if(argv < 2 )

por

if(argc < 2 )

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

naderST


ANTRUCK

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