Мини-конфиг на JSON — читаем, меняем, сохраняем!
Хотите настроить приложение через внешний файл, не заводя сложный парсер? Используйте JSON: читаемо, удобно, поддерживается из коробки с
Подключаем библиотеку и читаем конфиг
Теперь можно безопасно получить значения и обновить, если нужно:
Сохраняем обратно с отступами — удобно для ручной правки:
🔥 JSON стал стандартом де-факто для конфигураций: вы получаете чистоту, читаемость и работу без бойлерплейта.
📣 C++ Ready | #практика
Хотите настроить приложение через внешний файл, не заводя сложный парсер? Используйте JSON: читаемо, удобно, поддерживается из коробки с
nlohmann/json.Подключаем библиотеку и читаем конфиг
config.json в один объект:#include <nlohmann/json.hpp>
#include <fstream>
using json = nlohmann::json;
json cfg;
std::ifstream("config.json") >> cfg;
Теперь можно безопасно получить значения и обновить, если нужно:
int port = cfg.value("port", 8080);
cfg["debug"] = true;Сохраняем обратно с отступами — удобно для ручной правки:
std::ofstream("config.json") << cfg.dump(2);🔥 JSON стал стандартом де-факто для конфигураций: вы получаете чистоту, читаемость и работу без бойлерплейта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥7👍3
Появилось два новых примитива —
std::latch и std::barrier, которые убирают лишние condition_variable и делают многопоточность читаемой.Что важно знать:
• latch — одноразовая точка сбора, ждёт завершения всех задач;
• barrier — циклическая синхронизация с коллбэком после каждой фазы;
• Просты в использовании, особенно при множестве параллельных этапов.
Так что, они убирают бойлерплейт и делают потоковый код чище и надёжнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥13❤4🤝1
Собираем все .txt из папки в один файл — без лишних циклов и копирования!
Часто нужно объединить десятки текстовых файлов в один отчёт или сводку. Всё делаем стандартными средствами C++ — коротко и надёжно.
Получаем список всех
Открываем итоговый файл и последовательно добавляем в него содержимое каждого файла:
Всё вместе — склеиваем файлы в
🔥 Можно использовать для логов, заметок, экспорта данных. Всё на стандартной библиотеке — переносимо и просто!
📣 C++ Ready | #практика
Часто нужно объединить десятки текстовых файлов в один отчёт или сводку. Всё делаем стандартными средствами C++ — коротко и надёжно.
Получаем список всех
.txt файлов в нужной директории:namespace fs = std::filesystem;
std::vector<fs::path> txt_files(const fs::path& dir) {
std::vector<fs::path> out;
for (auto& e : fs::directory_iterator(dir))
if (e.is_regular_file() && e.path().extension() == ".txt")
out.push_back(e.path());
return out;}
Открываем итоговый файл и последовательно добавляем в него содержимое каждого файла:
void concat_txts(const std::vector<fs::path>& files, const fs::path& out) {
std::ofstream ofs(out, std::ios::binary);
for (const auto& path : files) {
std::ifstream ifs(path, std::ios::binary);
ofs << ifs.rdbuf() << '\n';
}}Всё вместе — склеиваем файлы в
main:int main() {
auto files = txt_files("notes");
concat_txts(files, "all.txt");
std::cout << "Готово: " << files.size() << " файлов объединено\n";}🔥 Можно использовать для логов, заметок, экспорта данных. Всё на стандартной библиотеке — переносимо и просто!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5🔥4
Этот инструмент помогает следить за изменениями в папке и быстро дублировать изменённые файлы в резервное место
Что важно знать:
• Работает без сторонних библиотек;
• Копирует только изменённые файлы;
• Подходит для любых каталогов.
Простой способ защитить данные и иметь актуальную резервную копию
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥3
Цветной вывод в консоли — яркие логи без библиотек!
Иногда нужно быстро подчеркнуть удачные и ошибочные ветки в логах. Достаточно встроенных ANSI-кодов — никаких внешних зависимостей!
Палитра базовых цветов (ANSI Escape)
Выводим сообщения разными цветами и не забываем сбрасывать стиль:
Работает на Linux / macOS «из коробки».
🔥 В Windows 10+ включите Virtual Terminal (
📣 C++ Ready | #практика
Иногда нужно быстро подчеркнуть удачные и ошибочные ветки в логах. Достаточно встроенных ANSI-кодов — никаких внешних зависимостей!
Палитра базовых цветов (ANSI Escape)
constexpr auto red = "\033[31m";
constexpr auto green = "\033[32m";
constexpr auto yellow = "\033[33m";
constexpr auto reset = "\033[0m";
// вернуть обычный цвет
Выводим сообщения разными цветами и не забываем сбрасывать стиль:
std::cout << green << "✔️ Всё прошло успешно" << reset << '\n';
std::cout << yellow << "… Загружаем данные" << reset << '\n';
std::cerr << red << "✖️ Ошибка подключения" << reset << '\n';
Работает на Linux / macOS «из коробки».
SetConsoleMode(h,ENABLE_VIRTUAL_TERMINAL_PROCESSING)) — и ANSI-краски будут доступны прямо в cmd / PowerShell.Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍4🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7❤6👎3