Haciendo un ejercicio me he encontrado una duda.
Es este:
Código
/*Una agenda que maneje los siguientes datos: nombre, dirección, tlf móvil, email, y día, mes y año de nacimiento (estos tres últimos datos deberán ser números enteros cortos). Deberá tener capacidad para 100 fichas. Se deberá poder añadir un dato nuevo, visualizar los nombres de las fichas existentes, o mostrar todos los datos de una persona (se preguntará al usuario cual es el nombre de esa persona que quiere visualizar). Al empezar el programa, leerá los datos de un fichero llamado “agenda.dat” (si existe). Al terminar, guardará todos los datos en ese fichero.*/ #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { struct { char nombre[10]; char direccion[15]; int movil; char email[20]; short int dia, mes, ano; }datos[100]; char lineas[500]; FILE* fichero; int opcion; if(fichero != NULL) { { } switch(opcion) { case 1: //En construcción, lo editaré según las respuestas que obtenga al preguntaros. break; case 2: //En construcción, lo editaré según las respuestas que obtenga al preguntaros. break; case 3: //En construcción, lo editaré según las respuestas que obtenga al preguntaros. break; default: } } return 0; }
La idea que estoy siguiendo es que primero abro el archivo en modo de lectura. Entonces pongo los casos en los que tiene que leer el archivo, y los casos en los que no. Cierro el archivo.
Después, creo un switch, en el que elijo una de las tres opciones, y ahí planteo cada cosa.
Y, finalmente, abro de nuevo el archivo, pero esta vez para escribir, y meto los datos obtenidos en el switch.
Mi problema es que no sé cómo hacer para que al cerrar el programa y volver a abrirlo sepa que ya he metido un número determinado de fichas (no sé si me explico). Creo que solo es con un do-while en el switch de "añadir datos", sumándole uno a "i", pero no estoy seguro.
También me gustaría saber si veis bien como he planteado el problema, para ver cómo puedo cambiar las cosas.
Muchísimas gracias.
Saludos.