2
« en: Sábado 24 de Mayo de 2003, 20:45 »
haber si alguien me puede ayudar
en la siguiente funcion el compilador me detecta un falloen la linea de fread
[C++ Error] Project1.cpp(115): E2285 Could not find a match for 'fread(usuarios,unsigned int,int,FILE *)'.
función:
int login(usuarios *usuario,FILE *key)
{
int
valido=0;
usuarios usutemp;
printf("nLogin: ");
gets(usuario->login);
printf("nPassword: ");
scanf("%ld",&usuario->password);
fread(usutemp,sizeof(usuario),1,key);
if(temp.login==(*usuario).login && temp.login==(*usuario).login)
{
valido=1;
}
return(valido);
}
gracias
Adjunto todo el odigo por si teneis alguna duda:
#include <stdio.h>
#include <conio.h>
typedef struct{
char login[10];
long int password;
int tipo;
}usuarios;
typedef struct{
int codigo;
char nombre[10];
long int telefono;
char propietario[8];
int borrado;
} registro;
int login(usuarios *,FILE *);
void abrir(char[8],FILE **);
void menu(void);
void ruta (char *);
void agregar(void);
void borrar(void);
void modificar(void);
void visualizar(void);
void reorganizar(void);
void recuperar(void);
main()
{
int aceptado,op=0,i;
char cruta[12];
FILE *archivo,*key;
usuarios usu, *usuario;
abrir("c:/system.tpp",&key);
usuario=&usu;
aceptado=login(usuario,key);
ruta(cruta);
abrir(cruta,&archivo);
for(i=1;i>0;i++)
{
menu();
scanf("%d",&op);
switch(op)
{
case 1:agregar(); break;
case 2:borrar(); break;
case 3:visualizar(); break;
case 4:modificar(); break;
case 5:reorganizar(); break;
case 6:recuperar(); break;
case 7:return(0);
}
}
printf("nnsaliendo");
getch();
fclose(archivo);
fclose(key);
}
void menu(void)
{
textbackground(7);
clrscr();
textcolor(1);
gotoxy(30,2);
cprintf("Introduce");
gotoxy(25,6);
cprintf("1.Alta");
gotoxy(25,8);
cprintf("2.Borrar");
gotoxy(25,10);
cprintf("3.Visualizar");
gotoxy(25,12);
cprintf("4.Modificar");
gotoxy(25,14);
cprintf("5.Reorganizar");
gotoxy(25,16);
cprintf("6.Recuperar");
gotoxy(25,18);
cprintf("7.Salir");
}
void abrir(char *nombre, FILE **fichero)
{
*fichero=fopen(nombre,"rb+");
if(!*fichero)
{
*fichero=fopen(nombre,"wb+");
if(!*fichero)
{
printf("se fallo al abrir el archivo");
}
}
}
int login(usuarios *usuario,FILE *key)
{
int
valido=0;
usuarios usutemp;
printf("nLogin: ");
gets(usuario->login);
printf("nPassword: ");
scanf("%ld",&usuario->password);
fread(usutemp,sizeof(usuario),1,key);
if(temp.login==(*usuario).login && temp.login==(*usuario).login)
{
valido=1;
}
return(valido);
}
void ruta(char *cruta)
{
clrscr();
fflush(stdin);
printf("Introduce la ruta del fichero que quiera abrirn");
gets(cruta);
}
void agregar(void)
{
textbackground(0);
clrscr();
registro registro1;
fflush(stdin);
printf("Introducir un registronnNombre: ");
gets("registro1.nombre");
printf("Telefono: ");
scanf("%ld",®istro1.telefono);
}
void visualizar(void)
{
textbackground(0);
clrscr();
int op;
printf("1.Visualizar ordeanado por:nn");
printf("2.Nombren");
printf("3.Numeros de telefonon");
printf("4.Orden de entrada en la base de datos primero el ultimon");
printf("5.Orden de entrada en la base de datos primero el mas viejon");
printf("6.Volver al menu principaln");
scanf("%d",&op);
}
void borrar(void)
{
textbackground(0);
clrscr();
printf("Introduxaca el nombre del registro que desea borrarn");
printf("Seguro que quiere borrar este registron");
getch();
}
void reorganizar(void)
{
textbackground(0);
clrscr();
printf("Se va a proceder al borrado fisico de los ficheros logicamente borradosn");
printf("Fichero reorganizado pulse cualquier tecla para volver al menu principaln");
getch();
}
void recuperar(void)
{
textbackground(0);
clrscr();
printf("Introduce el codigo del registro que deseas recuperarn");
printf("Escribe 0 para volver al menu");
}
void modificar(void)
{
clrscr();
textbackground(0);
printf("Introduce el codigo del registro que deseas recuperarn");
getch();
}