programa con ficheros

Iniciado por tumayy, 24 Octubre 2011, 19:33 PM

0 Miembros y 2 Visitantes están viendo este tema.

tumayy

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

esta hecho con funciones

/*ingreso, consulata, mostrar todo, modificar,salir*/

#include<stdio.h>
#include<conio.h>

void ingreso();
void consulta();
void mostrar();
void modificar();

FILE *pf;
char cadena[4000];

void main()
{
clrscr();
int op;



      printf("1.ingrese");
      printf("\n2.consulta");
      printf("\n3.mostrar todo");
      printf("\n4.modificar");
      printf("\n5.salir");
      printf("\n\nescoja opcion");

      scanf("%d",&op);

   

      switch(op)
         {
            case 1: ingreso();break;
       case 2: consulta();break;
       case 3: mostrar();break;
                 case 4: modificar();break;

         }




getch();

}






     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(long),SEEK_SET);
     fgets(cadena,4000,pf);
     printf("%s",cadena);
     }


void mostrar()
{

if((pf=fopen("ejemplo.txt","r"))!=NULL)
{
   printf("fichero abierto\n");
   printf("\neste es su contenido\n");

   while(!feof(pf))
   {
    fgets(cadena,4000,pf);
    if(feof(pf))
    {
    printf("\nfin de fichero");
    }
    else
    fputs(cadena,stdout);


   }

fclose(pf);
}



}

no me sale ni el ingreso , ni la consulta y porlotanto el modificar tampoco

Queta

No he mirado el código con detenimiento pero, ¿no crees que no te ejecuta ni ingreso ni modificar porque no existen ;D?
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

tumayy

no estan porque no me salen, por eso pido ayuda para terminarlo

rir3760

Cita de: tumayy en 25 Octubre 2011, 00:57 AMno estan porque no me salen, por eso pido ayuda para terminarlo
Como ya te habia comentado en tu otro tema primero debes indicar exactamente que entiendes por registro y darnos un ejemplo de como estan almacenados estos en el archivo de texto.

Si no es asi sera dificil (sino imposible) ayudarte. Mas todavia, ese programa se ve muy mal.

Por ejemplo en la funcion "consulta" primero pides el numero de registro y a continuacion tratas de colocarte en la posicion "n * sizeof(long)". Si "n" es el numero de registro es dificil pensar que la informacion de cada uno de estos se almacena en "sizeof(long)" caracteres y es todavia mas complicado si, en realidad, estamos hablando de un archivo de texto.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

tumayy

olvidate de mi codigo y enfoquemonos en el programa

si tu profesor te pide hacer eso, como lo harias

do-while

- Lo entenderia
- Pensaria que tipos de dato me hacen falta.
- Pensaria como organizarlos en un fichero para poder acceder los mas rapido a ellos.
- Diseñaria el menu y la forma de responder a las opciones, de esta forma sabria que funciones debo crear.
- Declararia los prototipos de las funciones.
- Empezaria una por una, por ejemplo en la introduccion de datos, para luego pasar a la lectura y asi poder comprobar que el proceso de eliminarlos y modificarlos funciona bien.

Asi lo haria.

¡Espero que te sea de ayuda!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!