advent-of-code/2024/util.zig

21 lines
793 B
Zig

const std = @import("std");
const print = std.debug.print;
pub fn readAllInput(day: u8, allocator: std.mem.Allocator) ![]const u8 {
var fileName: [16]u8 = undefined;
const inputFile = try std.fmt.bufPrint(&fileName, "day{d}.txt", .{day});
const file = try std.fs.cwd().openFile(inputFile, .{});
defer file.close();
const stat = try file.stat();
return try file.reader().readAllAlloc(allocator, stat.size);
}
pub fn inputToArrayList(comptime T: type, allocator: std.mem.Allocator, input: []const u8) !std.ArrayList(T) {
var out = std.ArrayList(T).init(allocator);
errdefer out.deinit();
var items = std.mem.tokenizeScalar(u8, input, ' ');
while (items.next()) |item| {
try out.append(try std.fmt.parseInt(T, item, 10));
}
return out;
}