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);
}
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");
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);
}
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!
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:
if(argv < 2 )
por
if(argc < 2 )
Te falta 1 argumento en fprintf() http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/
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