From db2c43032f167489182bc3aa99081cd9ef3cf4ba Mon Sep 17 00:00:00 2001 From: Lennart ten Wolde Date: Sun, 3 Dec 2023 10:36:28 +0100 Subject: [PATCH] chore: use new read_line function --- CMakeLists.txt | 4 +++- day_1.c | 19 ++++++------------- input_handler.c | 2 +- input_handler.h | 2 +- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d57a6e..84efbff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,9 @@ project(advent_of_code_2023 C) set(CMAKE_C_STANDARD 11) -add_executable(day_01 day_1.c) +add_executable(day_01 day_1.c + input_handler.c + input_handler.h) add_executable(day_02 day_2.c input_handler.c input_handler.h) diff --git a/day_1.c b/day_1.c index d081b4d..1d4eaec 100644 --- a/day_1.c +++ b/day_1.c @@ -7,20 +7,21 @@ #include #include +#include "input_handler.h" + int find_digits(FILE *f, bool replace_letters); int solve(const char *fileName, bool replace_letters); char *buffer; -int bufferLen = 64; +int bufferLen; + const char* digitsAsLetters[] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; int main() { - buffer = malloc(bufferLen * sizeof (char)); - printf("Result #1: %i\n", solve("day_1.txt", false)); - printf("Result #2: %i\n", solve("day_1.txt", true)); +// printf("Result #2: %i\n", solve("day_1.txt", true)); free(buffer); return 0; @@ -46,15 +47,7 @@ int find_digits(FILE *f, bool replace_letters) { int first = -1, last = 10; // Use first=-1 to detect unset value and last=10 to return 0 (-10 + 10) when no values are set // Read the entire line as a string - int position = 0; - do { - if(position >= bufferLen - 1) { - buffer = realloc(buffer, 2 * sizeof(char) * bufferLen); - bufferLen *= 2; - } - fgets(&buffer[position], bufferLen - position, f); - position = bufferLen - 1; - } while(buffer[strlen(buffer) - 1] != '\n' && !feof(f)); + read_line(f, &buffer, &bufferLen); for(int i = 0; i < bufferLen; i++) { if(buffer[i] == 0) { diff --git a/input_handler.c b/input_handler.c index 1567054..572f18c 100644 --- a/input_handler.c +++ b/input_handler.c @@ -8,7 +8,7 @@ #define INITIAL_CAPACITY 64 -const char* read_line(FILE *f, char **buffer, int *capacity) { +char* read_line(FILE *f, char **buffer, int *capacity) { if(*buffer == NULL) { *buffer = malloc(2 * sizeof (char) * INITIAL_CAPACITY); *capacity = INITIAL_CAPACITY; diff --git a/input_handler.h b/input_handler.h index b06ed19..56b972b 100644 --- a/input_handler.h +++ b/input_handler.h @@ -6,7 +6,7 @@ #ifndef ADVENT_OF_CODE_2023_INPUT_HANDLER_H -const char* read_line(FILE *f, char **buffer, int *capacity); +char* read_line(FILE *f, char **buffer, int *capacity); #define ADVENT_OF_CODE_2023_INPUT_HANDLER_H