Namespaces
Variants

std:: vprint_nonunicode, std:: vprint_nonunicode_buffered

From cppreference.net
< cpp ‎ | io
Print functions
Print functions
(C++23)
(C++23)
vprint_nonunicode vprint_nonunicode_buffered
(C++23) (C++23)
Definiert im Header <print>
void vprint_nonunicode ( std:: FILE * stream,
std:: string_view fmt, std:: format_args args ) ;
(1) (seit C++23)
void vprint_nonunicode_buffered
( std:: FILE * stream, std:: string_view fmt, std:: format_args args ) ;
(2) (seit C++23)
void vprint_nonunicode_buffered
( std:: string_view fmt, std:: format_args args ) ;
(3) (seit C++23)

Formatiert args gemäß der Formatzeichenkette fmt und schreibt das Ergebnis in den Ausgabestream.

1) Während die Sperre auf stream gehalten wird, schreibt die Zeichendarstellung der Formatierungsargumente, die durch args bereitgestellt werden, formatiert gemäß den Spezifikationen in fmt in den stream .
Wenn stream kein gültiger Zeiger auf einen Ausgabe-C-Stream ist, ist das Verhalten undefiniert.
2) Entspricht std:: string out = std:: vformat ( fmt, args ) ;
std :: vprint_nonunicode ( stream, "{}" , std:: make_format_args ( out ) ) ;
.
3) Entspricht std :: vprint_nonunicode_buffered ( stdout , fmt, args ) .


Nach dem Schreiben von Zeichen in den Ausgabestream, stellt es einen beobachtbaren Kontrollpunkt her.

(since C++26)

Inhaltsverzeichnis

Parameter

stream - Ausgabedateistream, in den geschrieben wird
fmt - ein Objekt, das die Formatzeichenkette repräsentiert. Die Formatzeichenkette besteht aus
  • gewöhnlichen Zeichen (außer { und } ), die unverändert in die Ausgabe kopiert werden,
  • Escape-Sequenzen { { und } } , die in der Ausgabe durch { bzw. } ersetzt werden, und
  • Ersetzungsfeldern.

Jedes Ersetzungsfeld hat folgendes Format:

{ arg-id (optional) } (1)
{ arg-id (optional) : format-spec } (2)
1) Ersetzungsfeld ohne Formatangabe
2) Ersetzungsfeld mit Formatangabe
arg-id - gibt den Index des Arguments in args an, dessen Wert für die Formatierung verwendet wird; falls weggelassen, werden die Argumente in Reihenfolge verwendet.

Die arg-id s in einer Formatzeichenkette müssen entweder alle angegeben oder alle weggelassen werden. Das Vermischen von manueller und automatischer Indizierung ist ein Fehler.

format-spec - die Formatangabe, definiert durch die std::formatter -Spezialisierung für das entsprechende Argument. Darf nicht mit } beginnen.

(since C++23)
(since C++26)
  • Für andere formatierbare Typen wird die Formatangabe durch benutzerdefinierte formatter -Spezialisierungen bestimmt.
args - zu formatierende Argumente

Exceptions

Hinweise

Feature-Test Makro Wert Std Funktion
__cpp_lib_print 202207L (C++23) Formatierte Ausgabe
202403L (C++26)
(DR23)
Ungepufferte formatierte Ausgabe
202406L (C++26)
(DR23)
Aktivierung ungepufferter formatierter Ausgabe für weitere formatierbare Typen
__cpp_lib_format 202207L (C++23) Verfügbarmachen von std::basic_format_string

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
P3107R5 C++23 Druckoperationen waren immer gepuffert bietet ungepufferte Druckoperationen
P3235R3 C++23 die Namen der durch P3107R5 hinzugefügten Funktionen waren irreführend änderte die Funktionsnamen

Siehe auch

gibt auf Unicode-fähige stdout oder einen Dateistrom unter Verwendung von typeradierten Argumentdarstellungen aus
(Funktion)
gibt Zeichendaten unter Verwendung von typeradierten Argumentdarstellungen aus
(Funktion)
(C++23)
gibt auf stdout oder einen Dateistrom unter Verwendung von formatierten Argumentdarstellungen aus
(Funktionsschablone)
(C++20)
speichert formatierte Darstellung der Argumente in einem neuen String
(Funktionsschablone)