Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error de variable no definida [Ansi C]

Estas en el tema de Error de variable no definida [Ansi C] en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/02/2015, 10:55
 
Fecha de Ingreso: junio-2013
Mensajes: 20
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación Error de variable no definida [Ansi C]

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);
}
  #2 (permalink)  
Antiguo 16/02/2015, 11:11
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Error de variable no definida [Ansi C]

Es un error de linkado.

Deduzco que estás usando Codeblocks. ¿Has metido el archivo funciones.c en el proyecto de Codeblocks?
  #3 (permalink)  
Antiguo 16/02/2015, 11:13
lareto
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error de variable no definida [Ansi C]

Hola.
En el .c el nombre de la función lo has escrito con una A mayúscula:
verArchivo

Etiquetas: ansi, char, funcion, int, numero, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:19.