Advent of Code 2025, done in C++
at main 1.1 kB view raw
1#include <cstdlib> 2#include <filesystem> 3#include <fstream> 4#include <iostream> 5#include <print> 6#include <string_view> 7#include <string> 8 9// DATA_FOLDER is injected by Meson so solutions do not have to care about paths. 10#ifndef DATA_FOLDER 11#error "DATA_FOLDER is not defined. Meson should inject it via cpp_args." 12#endif 13 14int main(int argc, char **argv) { 15 std::string_view mode = "real"; 16 if (const char *env_mode = std::getenv("AOC_MODE")) { 17 mode = env_mode; 18 } 19 if (argc > 1) { 20 mode = argv[1]; 21 } 22 23 std::println("Day 00 placeholder"); 24 std::println("Mode: {}", mode); 25 std::println("Data folder: {}", DATA_FOLDER); 26 27 const std::filesystem::path data_root{DATA_FOLDER}; 28 const auto input_path = data_root / "input.txt"; 29 30 std::ifstream input{input_path}; 31 if (!input.is_open()) { 32 std::println(std::cerr, "Failed to open {}", input_path.string()); 33 return EXIT_FAILURE; 34 } 35 36 std::println("Contents of {}:", input_path.string()); 37 for (std::string line; std::getline(input, line);) { 38 std::println(" {}", line); 39 } 40 41 return EXIT_SUCCESS; 42}