std:: quoted
|
Défini dans l'en-tête
<iomanip>
|
||
|
template
<
class
CharT
>
/*non spécifié*/
quoted
(
const
CharT
*
s,
|
(1) | (depuis C++14) |
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
/*non spécifié*/
quoted
(
const
std::
basic_string
<
CharT, Traits, Allocator
>
&
s,
|
(2) | (depuis C++14) |
|
template
<
class
CharT,
class
Traits
>
/*non spécifié*/
quoted
(
std::
basic_string_view
<
CharT, Traits
>
s,
|
(3) | (depuis C++17) |
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
/*non spécifié*/
quoted
(
std::
basic_string
<
CharT, Traits, Allocator
>
&
s,
|
(4) | (depuis C++14) |
Permet l'insertion et l'extraction de chaînes entre guillemets, telles que celles trouvées dans CSV ou XML .
out
est un flux de sortie dont le
char_type
est égal à
CharT
et, pour les surcharges (2,3), le
traits_type
est égal à
Traits
, se comporte comme une
FormattedOutputFunction
, qui insère dans
out
une séquence de caractères
seq
construite comme suit :
seq
une fois de plus.
- Ensuite, si seq. size ( ) < out. width ( ) , ajoute out. width ( ) - seq. size ( ) copies du caractère de remplissage out. fill ( ) soit à la fin de la séquence (si ios_base :: left est défini dans out. flags ( ) ) soit au début de la séquence (dans tous les autres cas).
- Finalement, émet chaque caractère de la séquence résultante comme en appelant out. rdbuf ( ) - > sputn ( seq, n ) , où n = std:: max ( out. width ( ) , seq. size ( ) ) et out. width ( 0 ) pour annuler les effets de std::setw , s'il y en a.
in
est un flux d'entrée avec
char_type
égal à
CharT
et
traits_type
égal à
Traits
, extrait des caractères de
in
, en utilisant
std::basic_istream::operator>>
, selon les règles suivantes :
traits_type::eq
du flux), alors effectue simplement
in
>>
s
.
in
et les ajoute à
s
, sauf que chaque fois qu'un caractère
escape
est extrait, il est ignoré et le caractère suivant est ajouté à
s
. L'extraction s'arrête lorsque
!
in
==
true
ou lorsqu'un caractère
delim
non échappé est trouvé.
Table des matières |
Paramètres
| s | - | la chaîne à insérer ou extraire |
| delim | - | le caractère à utiliser comme délimiteur, par défaut " |
| escape | - | le caractère à utiliser comme caractère d'échappement, par défaut \ |
Valeur de retour
Retourne un objet de type non spécifié de telle sorte que le comportement décrit se produise.
Exceptions
Lance std::ios_base::failure si operator >> ou operator << lèvent une exception.
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_quoted_string_io
|
201304L
|
(C++14) |
std::quoted
|
Exemple
#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(); }
Sortie :
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]
Voir aussi
|
(C++20)
|
stocke la représentation formatée des arguments dans une nouvelle chaîne
(modèle de fonction) |