Hola.
Haciendo un ejercicio me he encontrado una duda.
Es este:
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.
Haciendo un ejercicio me he encontrado una duda.
Es este:
Código (c) [Seleccionar]
/*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;
fichero = fopen("agenda.dat", "rt");
if(fichero != NULL)
{
while(! feof(fichero)) //Leemos los datos que contiene al principio
{
fgets(lineas,25,fichero);
}
fclose(fichero);
printf("Elija una opcion\n");
printf("1. Introducir datos\n");
printf("2. Visualizar nombres de las fichas existentes\n");
printf("3. Mostrar todos los datos de una persona\n");
scanf("%d",&opcion);
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:
printf("Opcion no valida");
}
}
system("pause");
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.