Freigeben über


wsprintfA-Funktion (winuser.h)

Schreibt formatierte Daten in den angegebenen Puffer. Alle Argumente werden konvertiert und gemäß der entsprechenden Formatspezifikation in der Formatzeichenfolge in den Ausgabepuffer kopiert. Die Funktion fügt ein beendendes NULL-Zeichen an die Zeichen an, die sie schreibt, aber der Rückgabewert enthält nicht das beendende NULL-Zeichen in seiner Zeichenanzahl.

Hinweis Verwenden Sie nicht. Erwägen Sie stattdessen die Verwendung einer der folgenden Funktionen: StringCbPrintf, StringCbPrintfEx, StringCchPrintf oder StringCchPrintfEx. Weitere Informationen finden Sie unter Sicherheitsüberlegungen.
 

Syntax

int WINAPIV wsprintfA(
  [out] LPSTR  unnamedParam1,
  [in]  LPCSTR unnamedParam2,
        ...    
);

Parameter

[out] unnamedParam1

Typ: LPTSTR

Der Puffer, der die formatierte Ausgabe empfangen soll. Die maximale Größe des Puffers beträgt 1.024 Bytes.

[in] unnamedParam2

Typ: LPCTSTR

Die Formatsteuerelementspezifikationen. Zusätzlich zu normalen ASCII-Zeichen wird in dieser Zeichenfolge eine Formatspezifikation für jedes Argument angezeigt. Weitere Informationen zur Formatspezifikation finden Sie im Abschnitt Hinweise.

...

Mindestens ein optionales Argument. Anzahl und Typ der Argumentparameter hängen von den entsprechenden Formatsteuerelementspezifikationen im lpFmt-Parameter ab.

Rückgabewert

Typ: int

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Anzahl von Zeichen, die im Ausgabepuffer gespeichert sind, ohne das beendende NULL-Zeichen zu zählen.

Wenn die Funktion fehlschlägt, ist der Rückgabewert kleiner als die Länge der erwarteten Ausgabe. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die Formatsteuerungszeichenfolge enthält Formatspezifikationen, die das Ausgabeformat für die Argumente bestimmen, die dem lpFmt-Parameter folgen. Formatspezifikationen, die unten erläutert werden, beginnen immer mit einem Prozentzeichen (%). Wenn auf ein Prozentzeichen ein Zeichen folgt, das keine Bedeutung als Formatfeld hat, wird das Zeichen nicht formatiert (z. B. erzeugt %% ein einzelnes Prozentzeichen).

Die Formatsteuerungszeichenfolge wird von links nach rechts gelesen. Wenn die erste Formatspezifikation (falls vorhanden) gefunden wird, wird der Wert des ersten Arguments nach der Formatsteuerungszeichenfolge konvertiert und gemäß der Formatspezifikation in den Ausgabepuffer kopiert. Die zweite Formatspezifikation bewirkt, dass das zweite Argument konvertiert und kopiert wird usw. Wenn mehr Argumente als Formatspezifikationen vorhanden sind, werden die zusätzlichen Argumente ignoriert. Wenn nicht genügend Argumente für alle Formatspezifikationen vorhanden sind, sind die Ergebnisse nicht definiert.

Eine Formatspezifikation hat folgendes Format:

%[-][#][0][width][.precision]type

Jedes Feld ist ein einzelnes Zeichen oder eine Zahl, die eine bestimmte Formatoption anzeigt. Die Typzeichen , die nach dem letzten optionalen Formatfeld angezeigt werden, bestimmen, ob das zugeordnete Argument als Zeichen, Zeichenfolge oder Zahl interpretiert wird. Die einfachste Formatspezifikation enthält nur das Prozentzeichen und ein Typzeichen (z. B. %s). Die optionalen Felder steuern andere Aspekte der Formatierung. Im Folgenden sind die optionalen und erforderlichen Felder und ihre Bedeutung aufgeführt.

Feld Bedeutung
- Polstern Sie die Ausgabe mit Leerzeichen oder Nullen auf der rechten Seite, um die Feldbreite zu füllen, was die Ausgabe auf der linken Seite rechtfertigt. Wenn dieses Feld ausgelassen wird, wird die Ausgabe links gepolstert, was dies rechts rechtfertigt.
# Präfix hexadezimale Werte mit 0x (Kleinbuchstaben) oder 0X (Großbuchstaben).
0 Polstern Sie den Ausgabewert mit Nullen, um die Feldbreite zu füllen. Wenn dieses Feld nicht angegeben wird, wird der Ausgabewert mit Leerzeichen aufgefüllt.
width Kopieren Sie die angegebene Mindestanzahl von Zeichen in den Ausgabepuffer. Das Feld breite ist eine nicht negative ganze Zahl. Die Breitenspezifikation führt nie dazu, dass ein Wert abgeschnitten wird. wenn die Anzahl der Zeichen im Ausgabewert größer als die angegebene Breite ist, oder wenn das Feld breite nicht vorhanden ist, werden alle Zeichen des Werts gemäß der Genauigkeitsspezifikation gedruckt.
. Präzision Kopieren Sie für Zahlen die angegebene Mindestanzahl von Ziffern in den Ausgabepuffer. Wenn die Anzahl der Ziffern im Argument kleiner als die angegebene Genauigkeit ist, wird der Ausgabewert links mit Nullen aufgefüllt. Der Wert wird nicht abgeschnitten, wenn die Anzahl der Ziffern die angegebene Genauigkeit überschreitet. Wenn die angegebene Genauigkeit 0 ist oder ganz weggelassen wird oder der Punkt (.) ohne eine Zahl angezeigt wird, wird die Genauigkeit auf 1 festgelegt.

Kopieren Sie für Zeichenfolgen die angegebene maximale Anzahl von Zeichen in den Ausgabepuffer.

type Geben Sie das entsprechende Argument als Zeichen, Zeichenfolge oder Zahl aus. Bei diesem Feld kann es sich um einen der folgenden Werte handeln.
c
Einzelnes Zeichen. Dieser Wert wird als Typ CHAR von wsprintfA und WCHAR von wsprintfW interpretiert. Hinweis wsprintf ist ein Makro, das als wsprintfA (Unicode nicht definiert) oder wsprintfW (Unicode definiert) definiert ist.
C
Einzelnes Zeichen. Dieser Wert wird als Typ WCHAR von wsprintfA und als Typ CHAR von wsprintfW interpretiert. Hinweis wsprintf ist ein Makro, das als wsprintfA (Unicode nicht definiert) oder wsprintfW (Unicode definiert) definiert ist.
d
Ganze Dezimalzahl mit Vorzeichen Dieser Wert entspricht .i
hc, hC
Einzelnes Zeichen. Wenn das Zeichen den numerischen Wert 0 aufweist, wird es ignoriert. Dieser Wert wird immer als Typ CHAR interpretiert, auch wenn die aufrufende Anwendung Unicode definiert.
hd
Kurzzahlargument mit Vorzeichen.
hs, hS
Zeichenfolge. Dieser Wert wird immer als LPSTR-Typ interpretiert, auch wenn die aufrufende Anwendung Unicode definiert.
hu
Ganzzahl ohne Vorzeichen.
i
Ganze Dezimalzahl mit Vorzeichen Dieser Wert entspricht .d
Ix, IX
64-Bit-Hexadezimalzahl ohne Vorzeichen in Klein- oder Großbuchstaben auf 64-Bit-Plattformen, 32-Bit-Hexadezimalzahl ohne Vorzeichen in Klein- oder Großbuchstaben auf 32-Bit-Plattformen.
lc, lC
Einzelnes Zeichen. Wenn das Zeichen den numerischen Wert 0 aufweist, wird es ignoriert. Dieser Wert wird immer als WCHAR-Typ interpretiert, auch wenn die aufrufende Anwendung Unicode definiert.
ld
Ganzzahl mit Langer Vorzeichen. Dieser Wert entspricht .li
li
Ganzzahl mit Langer Vorzeichen. Dieser Wert entspricht .ld
ls, lS
Zeichenfolge. Dieser Wert wird immer als LPWSTR-Typ interpretiert, auch wenn die aufrufende Anwendung Unicode nicht definiert. Dieser Wert entspricht .ws
lu
Lange ganze Zahl ohne Vorzeichen.
lx, lX
Lange Hexadezimalzahl ohne Vorzeichen in Klein- oder Großbuchstaben.
p
Zeiger. Die Adresse wird mit Hexadezimal ausgegeben.
s
Eine Zeichenfolge. Dieser Wert wird als Typ LPSTR von wsprintfA und als LPWSTR von wsprintfW interpretiert. Hinweis wsprintf ist ein Makro, das als wsprintfA (Unicode nicht definiert) oder wsprintfW (Unicode definiert) definiert ist.
S
Eine Zeichenfolge. Dieser Wert wird als Typ LPWSTR von wsprintfA und LPSTR von wsprintfW interpretiert. Beachten Sie , dass wsprintf ein Makro ist, das als wsprintfA (Unicode nicht definiert) oder wsprintfW (Unicode-Definition) definiert ist.
u
Ganzzahlargument ohne Vorzeichen.
x, X
Hexadezimalzahl ohne Vorzeichen in Klein- oder Großbuchstaben.
 
Hinweis Es ist wichtig zu beachten, dass wsprintf die C-Aufrufkonvention (_cdecl) anstelle der Standardaufrufkonvention (_stdcall) verwendet. Daher liegt es in der Verantwortung des aufrufenden Prozesses, Argumente aus dem Stapel zu popen, und Argumente werden auf den Stapel von rechts nach links gepusht. In C-Sprachmodulen führt der C-Compiler diese Aufgabe aus.
 
Um Puffer zu verwenden, die größer als 1024 Byte sind, verwenden Sie _snwprintf. Weitere Informationen finden Sie in der Dokumentation zur C-Laufzeitbibliothek.

Hinweis

Der winuser.h-Header definiert wsprintf als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Siehe auch

Konzept

Referenz

StringCbPrintf

StringCbPrintfEx

StringCbVPrintf

StringCbVPrintfEx

StringCchPrintf

StringCchPrintfEx

StringCchVPrintf

StringCchVPrintfEx

Zeichenfolgen

wvsprintf