Mercurial
view wedding/main.c @ 12:de54585a40f1
Adding bun and node modules.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Thu, 02 Oct 2025 14:39:48 -0700 |
| parents | |
| children |
line wrap: on
line source
#include "dowa/dowa.h" size_t Dowa_File_ReadLine(FILE *restrict stream, char *buffer, size_t buffer_size) { char c; size_t res = 0; while ((c = getc(stream)) != EOF && c != '\n') { if (res + 1 > buffer_size) break; buffer[res++] = c; } buffer[res] = '\0'; return res; } int main(void) { char c; char *comma, *curr; char **keys; FILE *f = fopen("wedding/invities.csv", "rb"); if (!f) perror("fopen\n"); char *line = malloc(128); Dowa_PArena p_csv_area = Dowa_Arena_Create(4048); keys = Dowa_Arena_Allocate(p_csv_area, sizeof(char*) * 10); while (Dowa_File_ReadLine(f, line, 128) > 0) { curr = line; int pos = 0 ; while (1) { comma = memchr(curr, ',', strlen(curr)); if (!comma) break; size_t diff = comma - curr; keys[pos] = Dowa_Arena_Allocate(p_csv_area, diff+1); memcpy(keys[pos], curr, diff); curr = comma+1; pos += 1; } int last = strlen(curr); keys[pos] = Dowa_Arena_Allocate(p_csv_area, last); memcpy(keys[pos], curr, last); for (pos = 0; pos < 10; pos++) { if (!keys[pos]) break; printf("%s, ", keys[pos]); } printf("\n\n"); } return 0; }