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:
funciones.h#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; }
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); }