С его помощью можно легко получать расширение файла, имя без пути, родительский каталог, заменять расширение, а также работать с путём в системном формате. Полезно при создании утилит, обработке файлов и написании кроссплатформенного кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍9❤8🤝5
В этой статье:
• Инициализация и отрисовка спрайтов в консоли без внешних библиотек
• Организация игрового цикла и логики с помощью контейнеров STL
• Обработка ввода, тайминга и коллизий в терминальной среде
🔊 Советую продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7❤6
Консольная утилита, которая генерирует пароль заданной длины из выбранных групп символов прямо из терминала.
В этой задаче:
• Принимаем на вход строку вида <длина><группы>, например 12abd.
• Настраиваем генерацию случайных чисел для равномерного выбора символов из набора.
• Постепенно формируем строку нужной длины, выбирая случайные символы из набора, и выводим результат.
Такой инструмент удобен, когда нужно быстро получить надёжный пароль с нужными характеристиками прямо из командной строки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤8🔥8🤝1
Разбираем создание временных файлов
Сейчас научимся создавать временный файл, который сам удалится после завершения программы. Это пригодится при работе с логами, кэшем, временными данными или тестами.
Сначала подключим необходимые библиотеки из стандартной поставки:
Теперь создадим временный файл и проверим, удалось ли это:
Запишем в файл строку и переместим указатель в начало, чтобы прочитать:
Считаем содержимое из временного файла и выведем его на экран:
Результат при запуске программы:
🔥 Таким образом ты можешь безопасно создавать временные файлы — без забот об удалении и кроссплатформенных различиях.
📣 C++ Ready | #практика
Сейчас научимся создавать временный файл, который сам удалится после завершения программы. Это пригодится при работе с логами, кэшем, временными данными или тестами.
Сначала подключим необходимые библиотеки из стандартной поставки:
#include <cstdio>
#include <iostream>
Теперь создадим временный файл и проверим, удалось ли это:
std::FILE* tmp = std::tmpfile();
if (!tmp) {
std::cerr << "Не удалось создать временный файл.\n";
return 1;
}
Запишем в файл строку и переместим указатель в начало, чтобы прочитать:
std::fputs("Временные данные\n", tmp);
std::rewind(tmp);
Считаем содержимое из временного файла и выведем его на экран:
char buffer[64];
std::fgets(buffer, sizeof(buffer), tmp);
std::cout << "Прочитали: " << buffer;
Результат при запуске программы:
Прочитали: Временные данные
🔥 Таким образом ты можешь безопасно создавать временные файлы — без забот об удалении и кроссплатформенных различиях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥6❤5👎1
👍11🔥10❤5
Move-семантика в C++ позволяет не копировать данные, а забирать их у временных объектов. Это ускоряет работу программы и экономит память.
Что важно знать:
• std::move() — позволяет «забрать» содержимое временного объекта.
• Move-конструктор MyClass(MyClass&&) — переносит данные при создании нового объекта.
• Оператор присваивания operator=(MyClass&&) — переносит ресурсы в уже существующий объект.
Это делает код быстрее и безопаснее — особенно при работе с динамической памятью и большими объектами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9❤7🤝6