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", ¬e.title);
printf("Enter note descriptino: ");
scanf("%s", ¬e.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");
}
}
}