std:: print (std::ostream)
|
Défini dans l'en-tête
<ostream>
|
||
|
template
<
class
...
Args
>
void print ( std:: ostream & os, std:: format_string < Args... > fmt, Args && ... args ) ; |
(depuis C++23) | |
Formate args selon la chaîne de format fmt , et insère le résultat dans le flux os .
Si l' encodage de littéral ordinaire est UTF-8, équivalent à :
- std::vprint_unicode ( os, fmt. get ( ) , std:: make_format_args ( args... ) ) ; . Sinon,
- std::vprint_nonunicode ( os, fmt. get ( ) , std:: make_format_args ( args... ) ) ; .
Le comportement n'est pas défini si
std::
formatter
<
Ti,
char
>
ne satisfait pas aux exigences
BasicFormatter
pour tout
Ti
dans
Args
(comme requis par
std::
make_format_args
).
Table des matières |
Paramètres
| os | - | flux de sortie dans lequel insérer les données | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Chaque champ de remplacement a le format suivant :
1)
champ de remplacement sans spécification de format
2)
champ de remplacement avec spécification de format
|
||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | arguments à formater | ||||||||||||||||||||||||||||||||||||||||||||||
Exceptions
- std::bad_alloc en cas d'échec d'allocation.
- Propage toute exception levée par un formatter , par exemple std::format_error , sans tenir compte de la valeur de os. exceptions ( ) et sans activer ios_base::badbit dans l'état d'erreur de os .
- Peut lever ios_base::failure causé par os. setstate ( ios_base :: badbit ) qui est appelé si une insertion dans os échoue.
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | Sortie formatée |
__cpp_lib_format
|
202207L
|
(C++23) | Exposition de std::basic_format_string |
Exemple
#include <array> #include <cctype> #include <cstdio> #include <format> #include <numbers> #include <ranges> #include <sstream> int main() { std::array<char, 24> buf; std::format_to(buf.begin(), "{:.15f}", std::numbers::sqrt2); unsigned num{}, sum{}; for (auto n : buf | std::views::filter(isdigit) | std::views::transform([](char x) { return x - '0'; }) | std::views::take_while([&sum](char) { return sum < 42; })) sum += n, ++num; std::stringstream stream; #ifdef __cpp_lib_print std::print(stream, #else stream << std::format( #endif "√2 \N{ALMOST EQUAL TO} {0}.\n" "The sum of its first {1} digits is {2}.", std::numbers::sqrt2, num, sum ); std::puts(stream.str().data()); }
Sortie :
√2 ≈ 1.4142135623730951. The sum of its first 13 digits is 42.
Voir aussi
|
(C++23)
|
affiche
une représentation formatée
des arguments avec ajout de
'
\n
'
(modèle de fonction) |
|
(C++23)
|
imprime vers
stdout
ou un flux de fichier en utilisant
une représentation formatée
des arguments
(modèle de fonction) |
|
(C++20)
|
stocke la représentation formatée des arguments dans une nouvelle chaîne
(modèle de fonction) |