HTMLify

notes.c
Views: 2 | Author: abh
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct {
    char title[30];
    char desc[1024];
} Note;

char SEP = '|';

void load_notes(Note *notes, int *size) {
    FILE *notes_file = fopen("notes.txt", "r");
    if (notes_file == NULL) {
        return;
    }
    char line[1055];
    char title[30], desc[1024];
    int i;
    while (fgets(line, 1055, notes_file)) {
        Note note;
        char *token = strtok(line, "|");
        strcpy(note.title, token);
        token = strtok(NULL, "|");
        strcpy(note.desc, token);
        note.desc[strlen(note.desc)-1] = '\0';

        notes[i] = note;
        i++;
        (*size)++;
    }
}

void save_notes(Note notes[], int size) {
    FILE *notes_file = fopen("notes.txt", "w");
    if (notes_file == NULL) {
        return;
    }
    for (int i=0; i<size; i++) {
        Note note = notes[i];
        fprintf(notes_file, "%s|%s\n", note.title, note.desc);
    }
    fclose(notes_file);
}

void print_note(Note note) {
    printf("Note Title: %s", note.title);
    printf("Note Description: %s", note.desc);
}

int main() {
    Note notes[1024];
    int size = 0;
    int choice;

    load_notes(notes, &size);

    while (0x1) {
        printf("\n0: Exit\n");
        printf("1: Create Note\n");
        printf("2: Read Note\n");
        printf("3: List Notes\n"); 
        scanf("%d", &choice);

        switch (choice) {
            case 0:
                exit(0);
                break;
            case 1:
                Note note;
                printf("Enter note title: ");
                scanf("%s", &note.title);
                printf("Enter note descriptino: ");
                scanf("%s", &note.desc);
                notes[size] = note;
                size++;
                save_notes(notes, size);
                printf("Note created sucsessfully");
                break;
            case 2:
                int id;
                printf("Enter ID of note: ");
                scanf("%d", &id);
                print_note(notes[id-1]);
                break;
            case 3:
                printf("--------------------------------------\n");
                for (int i=0; i<size; i++) {
                    printf("| %d | %s | %s |\n", i+1, notes[i].title, notes[i].desc);
                }
                printf("--------------------------------------\n");
                break;
            default:
                printf("Invalid choice");
        }
    }
}

Comments