chore: use new read_line function

This commit is contained in:
2023-12-03 10:36:28 +01:00
parent 3474b93be1
commit db2c43032f
4 changed files with 11 additions and 16 deletions

View File

@@ -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)

19
day_1.c
View File

@@ -7,20 +7,21 @@
#include <string.h>
#include <stdbool.h>
#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) {

View File

@@ -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;

View File

@@ -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