SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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.
-
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