SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: maxcab en Lunes 10 de Febrero de 2003, 00:02

Título: Re: Problema al leer desde un archivo a un registro
Publicado por: maxcab en Lunes 10 de Febrero de 2003, 00:02
Hola, tengo un problema porque me han pasado un programa que en teoría hace unos años compilaba.

El problema lo tengo cuando el programa intenta leer de un archivo rellenando todos los campos de un registro.

El programa define un registro y luego intenta leer, digamos:

struct {
char nombre[20];
char apellido[20];
char telefono[15];
} registro;

int fichero;
fichero = open("nombres.txt", O_RDONLY, 0);
num = read(fichero, registro, sizeof(registro));

Con este código no compila, y dice que no puede asignar "void *" al registro.

sin embargo si para abrir el fichero usamos

FILE *fichero;
fichero = fopen( "nombres.txt", "r" );

sí que funciona, sin embargo no tengo permiso para modificar el código. ¿Alguno sabeis a que se puede deber?? Muchas gracias por vuestra ayuda.
Título: Problema al leer desde un archivo a un registro
Publicado por: gmantil en Martes 11 de Febrero de 2003, 13:28
Veo que abres el archivo para solo lectura. Cuando abres un archivo con

fp=fopen("nombre.txt","r");

estas abriendo el archivo para solo leer en el. Lo debes abrir

fp=fopen("nombre.txt","r+");

para poder accederlo lectura y escritura. No planteas en tu problema como lees el registro, pero si utilizas la función fopen para abrir el archivo, debes utilizar fread para leerlo y así para todas la opereciones de I/O debes utilizar funciones f...

Espero haber entendido bien tu problema y que esto te ayude a aclarar lo que te pasa.

Saludos,

gmantil