// Programa simple en C para implementar un diario intimo
// por ~peron
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_ENTRY_SIZE 1500
// Funcion para agregar una nueva entrada
void addEntry()
{
char entry[MAX_ENTRY_SIZE];
printf(
"Mecanografia tu nueva entrada del diario (1500 caracteres como maximo):\n");
getchar(); // Consume el caracter newline almacenado en
// el buffer
fgets(entry, sizeof(entry), stdin);
// Obtiene la fecha y hora actual
time_t t = time(NULL);
struct tm* tm_info = localtime(&t);
char timestamp[20];
strftime(timestamp, sizeof(timestamp),
"%d-%m-%Y %H:%M:%S", tm_info);
// Agrega la entrada al fichero de diario
FILE* file = fopen("diario_intimo.txt", "a");
if (file != NULL) {
fprintf(file, "[%s]\n%s\n\n", timestamp, entry);
fclose(file);
printf("Entrada exitosamente agregada!\n");
}
else {
printf("Error: No pude abrir el fichero del diario.\n");
}
}
// Funcion para presentar todos las entradas del diario
void viewEntries()
{
char line[MAX_ENTRY_SIZE];
FILE* file = fopen("diario_intimo.txt", "r");
if (file != NULL) {
while (fgets(line, sizeof(line), file) != NULL) {
printf("%s", line);
}
fclose(file);
}
else {
printf("\nError: No pude abrir el fichero del diario.\n");
}
}
// Codigo principal
int main()
{
int choice;
// bucle que corre hasta elegir salir.
do {
// main dashboard
printf("Aplicacion de Diario Intimo en texto plano\n");
printf("\n");
printf(" 1. Agregar Entrada al Diario Intimo\n");
printf(" 2. Ver entradas del Diario Intimo\n");
printf(" 3. Salir\n");
printf("\n");
printf("Elija una opcion: ");
scanf("%d", &choice);
// seleccion de opcion
switch (choice) {
case 1:
addEntry();
break;
case 2:
viewEntries();
break;
case 3:
printf("Saliendo de la aplicacion del Diario. "
"Adios!\n");
break;
default:
printf("Opcion invalida. Por favor ingrese una opcion "
"correcta.\n");
}
} while (choice != 3);
return 0;
}