// Programa simple en C para implementar un diario íntimo // por ~peron #include #include #include #include #define MAX_ENTRY_SIZE 1500 // Función para agregar una nueva entrada void addEntry() { char entry[MAX_ENTRY_SIZE]; printf( "Mecanografía tu nueva entrada del diario (1500 caracteres como máximo):\n"); getchar(); // Consume el carácter 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"); } } // Función 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"); } } // Código principal int main() { int choice; // bucle que corre hasta elegir salir. do { // main dashboard printf("Aplicación de Diario Íntimo en texto plano\n"); printf("\n"); printf(" 1. Agregar Entrada al Diario Íntimo\n"); printf(" 2. Ver entradas del Diario Íntimo\n"); printf(" 3. Salir\n"); printf("\n"); printf("Elija una opción: "); scanf("%d", &choice); // selección de opcion switch (choice) { case 1: addEntry(); break; case 2: viewEntries(); break; case 3: printf("Saliendo de la aplicación del Diario. " "Adios!\n"); break; default: printf("Opción inválida. Por favor ingrese una opción " "correcta.\n"); } } while (choice != 3); return 0; }