Собираем все .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
❤5👍4🔥3
Сегодня покажу, как получать байты, задавать фиксированные размеры и передавать диапазоны в алгоритмы без лишних усилий.
Что важно знать:
• Байтный вид быстро;
• Фиксированная длина экономит;
• Легко сортировать напрямую.
Это продолжение прошлого гайда
— теперь
span раскроется на полную силу.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍6❤4