este es un segmento de mi programa
hay un fichero llamado ejemplo.txt, que tiene los siguientes registros
primero
segundo
tercero
mediante el fseek deseo buscar e imprimir el registro n que es tecleado, pero no me sale....ayuda con el codigo (las variables y el puntero a file son globales)
void consulta()
{
int n;
if((pf=fopen("ejemplo.txt","r"))==NULL)
{
printf("error");
}
else
printf("numero de resgistro");
scanf("%d",&n);
fseek(pf,n*sizeof(char),SEEK_SET);
fread(&cadena,sizeof(char),1,pf) ;
printf("%s",cadena[4000]) ;
}
Honestamente con lo poco que presentas no es posible ayudarte.
Para empezar necesitamos conocer como se almacena cada registro en el archivo. Y si este lo abres en el modo texto no puedes (mas bien no deberías por detalles técnicos) utilizar fseek para encontrar un registro, en su lugar procesas el archivo linea por linea.
Mejor publica la versión mas pequeña posible de tu programa.
Un saludo
lo que me piden en el programa
MENU
1. ingresar(escribir en un fichero)
2.consultar(con fseek ir a determinado registro)
3.modificar(con fseek modificar un registro determinado)
4.mostrar(muestra todos los registros)
ayudame con este programa
Creo que no lo has entendido del todo, lo que se te ha pedido, a parte de saber qué es lo que haces, es un código algo más completo.
- Con qué trabajas en el fichero? Cadenas? Estructuras?
Yo por ejemplo, creo que necesito ver lo que viene a ser la cabecera del programa, (donde declaras las variables, estructuras y sus tipos), para saber exactamente que es lo que intentas manejar en el archivo.
¡Buenas!
Otro detalle, si desconoces el tamaño del registro, poco podras hacer con fseek. Tendras que trabajar con ficheros binarios, con registros del mismo tamaño, para poder acceder a ellos de forma directa, y no sobre ficheros de texto.
¡Saludos!