std:: quoted
|
Definido en el encabezado
<iomanip>
|
||
|
template
<
class
CharT
>
/*no especificado*/
quoted
(
const
CharT
*
s,
|
(1) | (desde C++14) |
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
/*no especificado*/
quoted
(
const
std::
basic_string
<
CharT, Traits, Allocator
>
&
s,
|
(2) | (desde C++14) |
|
template
<
class
CharT,
class
Traits
>
/*no especificado*/
quoted
(
std::
basic_string_view
<
CharT, Traits
>
s,
|
(3) | (desde C++17) |
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
/*no especificado*/
quoted
(
std::
basic_string
<
CharT, Traits, Allocator
>
&
s,
|
(4) | (desde C++14) |
Permite la inserción y extracción de cadenas entrecomilladas, como las que se encuentran en CSV o XML .
out
es un flujo de salida con
char_type
igual a
CharT
y, para las sobrecargas (2,3),
traits_type
igual a
Traits
, se comporta como una
FormattedOutputFunction
, que inserta en
out
una secuencia de caracteres
seq
construida de la siguiente manera:
seq
una vez más.
- Entonces, si seq. size ( ) < out. width ( ) , añade out. width ( ) - seq. size ( ) copias del carácter de relleno out. fill ( ) ya sea al final de la secuencia (si ios_base :: left está establecido en out. flags ( ) ) o al principio de la secuencia (en todos los demás casos).
- Finalmente, emite cada carácter de la secuencia resultante como si llamara a out. rdbuf ( ) - > sputn ( seq, n ) , donde n = std:: max ( out. width ( ) , seq. size ( ) ) y out. width ( 0 ) para cancelar los efectos de std::setw , si los hay.
in
es un flujo de entrada con
char_type
igual a
CharT
y
traits_type
igual a
Traits
, extrae caracteres de
in
, usando
std::basic_istream::operator>>
, de acuerdo con las siguientes reglas:
traits_type::eq
del flujo), entonces simplemente ejecuta
in
>>
s
.
in
y los añade a
s
, excepto que cuando se extrae un carácter de
escape
, este se ignora y el siguiente carácter se añade a
s
. La extracción se detiene cuando
!
in
==
true
o cuando se encuentra un carácter
delim
sin escape.
Contenidos |
Parámetros
| s | - | la cadena a insertar o extraer |
| delim | - | el carácter a utilizar como delimitador, por defecto " |
| escape | - | el carácter a utilizar como carácter de escape, por defecto \ |
Valor de retorno
Devuelve un objeto de tipo no especificado de modo que tenga lugar el comportamiento descrito.
Excepciones
Lanza std::ios_base::failure si operator >> o operator << lanza.
Notas
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_quoted_string_io
|
201304L
|
(C++14) |
std::quoted
|
Ejemplo
#include <iomanip> #include <iostream> #include <sstream> void default_delimiter() { const std::string in = "std::quoted() quotes this string and embedded \"quotes\" too"; std::stringstream ss; ss << std::quoted(in); std::string out; ss >> std::quoted(out); std::cout << "Default delimiter case:\n" "read in [" << in << "]\n" "stored as [" << ss.str() << "]\n" "written out [" << out << "]\n\n"; } void custom_delimiter() { const char delim{'$'}; const char escape{'%'}; const std::string in = "std::quoted() quotes this string and embedded $quotes$ $too"; std::stringstream ss; ss << std::quoted(in, delim, escape); std::string out; ss >> std::quoted(out, delim, escape); std::cout << "Custom delimiter case:\n" "read in [" << in << "]\n" "stored as [" << ss.str() << "]\n" "written out [" << out << "]\n\n"; } int main() { default_delimiter(); custom_delimiter(); }
Salida:
Default delimiter case: read in [std::quoted() quotes this string and embedded "quotes" too] stored as ["std::quoted() quotes this string and embedded \"quotes\" too"] written out [std::quoted() quotes this string and embedded "quotes" too] Custom delimiter case: read in [std::quoted() quotes this string and embedded $quotes$ $too] stored as [$std::quoted() quotes this string and embedded %$quotes%$ %$too$] written out [std::quoted() quotes this string and embedded $quotes$ $too]
Véase también
|
(C++20)
|
almacena la representación formateada de los argumentos en una nueva cadena
(plantilla de función) |