Hola gente, tengo un problema con esta codificación
Me aparece el siguiente error en el main, en la siguiente línea
verarchivo(pf);
||=== Build: Debug in archivos (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
[ruta del archivo]\archivos\main.c|22|undefined reference to `verarchivo|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
sin embargo tengo la función verarchivo en funciones.h , que puede ser?
main.c
Código:
#include <stdio.h>
#include <stdlib.h>
#include "funciones.h"
int main()
{
datos d[10];
int i=0,op;
FILE * pf;
//lectura
pf=fopen("arch.bin","rb");
if(!pf)
{
printf("Error al abrir el archivo");
exit(1);
}
printf("oprima 1 si desea ver el archivo y dejarlo como estaba");
scanf("%d",&op);
if (op==1)
{
verarchivo(pf);
fclose(pf);
}
else
{
pf=fopen("arch.bin","wb");
if(!pf)
{
printf("Error al abrir el archivo");
exit(1);
}
do
{
printf("ingrese texto (60 letras)");
fflush(stdin);
gets(d[i].letras);
printf("ingrese un numero entero:");
fflush(stdin);
scanf("%d",&d[i].entero);
printf("Ingrese un numero con coma:");
fflush(stdin);
scanf("%f",&d[i].flotante);
printf("si desea terminar S/N");
scanf("%d",&d[i].f);;
fwrite(&d[i],sizeof(datos),1,pf);
i++;
}
while(d[i-1].f!=0 && i<20 ); //i-1 por que sino nunca compara con el recien ingresado
fclose(pf);
}
return 0;
}
funciones.h
Código:
#ifndef FUNCIONES_H_INCLUDED
#define FUNCIONES_H_INCLUDED
#include <stdio.h>
typedef struct
{
char letras[60];
int f;
int entero;
float flotante;
}datos;
//void entradaaleatoria(FILE * );
void verarchivo(FILE *);
#endif // FUNCIONES_H_INCLUDED
funciones.c
Código:
#include "funciones.h"
void verArchivo(FILE * pf)
{
int i;
datos d;
pf= fopen("arch.bin","rb");
if(!pf)
{
printf("Error al abrir el archivo");
exit(1);
}
fread(&d,sizeof(datos),1,pf);
while (!feof(pf))
{
printf("\n ESCRITURA %s\n NUMERO %d\t FLOAT: %f\n",d.letras,d.entero,d.flotante);
fread(&d,sizeof(datos),1,pf);
i++;
}
fclose(pf);
}