std:: println
|
Definiert im Header
<print>
|
||
|
template
<
class
...
Args
>
void println ( std:: format_string < Args... > fmt, Args && ... args ) ; |
(1) | (seit C++23) |
|
template
<
class
...
Args
>
void
println
(
std::
FILE
*
stream,
|
(2) | (seit C++23) |
|
void
println
(
)
;
|
(3) | (seit C++26) |
|
void
println
(
std::
FILE
*
stream
)
;
|
(4) | (seit C++26) |
Formatiere args gemäß der Formatzeichenkette fmt mit angehängtem ' \n ' (was bedeutet, dass jede Ausgabe mit einer neuen Zeile endet), und gib das Ergebnis an einen Stream aus.
|
std:: print ( stream, "{} \n " , std:: format ( fmt, std:: forward < Args > ( args ) ... ) ) ; |
(bis C++26) |
|
std::
print
(
stream,
std::
runtime_format
(
std::
string
(
fmt.
get
(
)
)
+
'
\n
'
)
,
|
(seit C++26) |
Wenn
std::
formatter
<
Ti,
char
>
die
BasicFormatter
-Anforderungen für irgendein
Ti
in
Args
nicht erfüllt (wie von
std::make_format_args
benötigt), ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Parameter
| stream | - | Ausgabedateistream, in den geschrieben wird | ||||||||||||||||||||||||||||||||||||||||||||||
| fmt | - |
Jedes Ersetzungsfeld hat folgendes Format:
1)
Ersetzungsfeld ohne Formatangabe
2)
Ersetzungsfeld mit Formatangabe
|
||||||||||||||||||||||||||||||||||||||||||||||
| args... | - | zu formatierende Argumente | ||||||||||||||||||||||||||||||||||||||||||||||
Ausnahmen
- std::bad_alloc bei Allokationsfehlern.
- std::system_error , wenn das Schreiben in den Stream fehlschlägt.
- Leitet alle von verwendeten Formatters ausgelösten Ausnahmen weiter, z.B. std::format_error .
Hinweise
Obwohl Überladungen ( 3,4 ) in C++26 hinzugefügt werden, stellen alle bekannten Implementierungen sie bereits im C++23-Modus zur Verfügung.
| Feature-Test Makro | Wert | Std | Funktion |
|---|---|---|---|
__cpp_lib_print
|
202207L
|
(C++23) | Formatierte Ausgabe |
202403L
|
(C++26) | Ungepufferte formatierte Ausgabe [1] | |
__cpp_lib_format
|
202207L
|
(C++23) | Verfügbarmachen von std::basic_format_string |
- ↑ Obwohl P3107R5 als DR akzeptiert wurde, std::runtime_format ist erst ab C++26 verfügbar. Daher kann die Lösung nicht in C++23 angewendet werden.
Beispiel
#include <print> int main() { // Jeder Aufruf von std::println endet mit einem Zeilenumbruch std::println("Please"); // Überladung (1) std::println("enter"); // (1) std::print("pass"); std::print("word"); std::println(); // (3); gültig seit C++26; gleiche Wirkung wie std::print("\n"); }
Ausgabe:
Please enter password
Siehe auch
|
(C++23)
|
gibt formatiert an
stdout
oder einen Dateistrom aus
(Funktions-Template) |
|
(C++23)
|
gibt formatierte Darstellung der Argumente mit angehängtem
'
\n
'
aus
(Funktions-Template) |
|
(C++20)
|
speichert formatierte Darstellung der Argumente in einem neuen String
(Funktions-Template) |
|
(C++11)
|
gibt formatierte Ausgabe an
stdout
, einen Dateistrom oder einen Puffer aus
(Funktion) |