Daily bit(e) C++. std::quoted

Добавлено 23 октября 2026 в 07:18

Daily bit(e) C++ 158, утилита из C++14 для работы со строками в кавычках – std::quoted.

Daily bit(e) C++

std::quoted – это утилита из C++14, упрощающая чтение и запись строк в кавычках.

При использовании во время вставки в поток она заключит заданную строку в кавычки и экранирует все внутренние кавычки.

При использовании во время извлечения из потока будет прочитана вся строка в кавычках, будут удалены окружающие кавычки (если таковые имеются) и разэкранированы внутренние кавычки.

#include <iostream>
#include <iomanip>


std::cout << std::quoted(R"(I say: "Hello Wordl!")") << "\n";
// prints: "I say: \"Hello World!\""

std::stringstream s(R"("I say: \"Hello World!\"")");
std::string unescaped;
s >> std::quoted(unescaped);
// unescaped == I say: "Hello World!"

// Символы экранирования и кавычки можно настроить.
std::cout << std::quoted("10|20|30",'|','#') << "\n";
// prints: |10#|20#|30|

Пример на Compiler Explorer

Теги

C++ / CppDaily bit(e) C++Программирование