Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Język C++

sprintf

[funkcja] Zapisuje tekst sformatowany do wskazanego bufora znakowego.

Składnia

C/C++
#include <cstdio>

int sprintf(
char * buffer,
const char * format,
.../* opcjonalne argumenty */
);

Argumenty

ArgumentOpis
char *bufferWskaźnik na bufor znaków do którego ma zostać zapisany tekst sformatowany.
const char *formatPatrz: » standard Ctekst sformatowany - sprintf.
...Opcjonalne argumenty - typy argumentów oraz ich kolejność muszą być zgodne z tagami jakie wystąpiły w tekście sformatowanym (argument format).

Zwracana wartość

Zwraca liczbę zapisanych bajtów w przypadku sukcesu (nie uwzględnia znaku terminalnego ('\0')). Funkcja zwraca wartość ujemną jeżeli wystąpił błąd.

Opis szczegółowy

Funkcja zapisuje tekst sformatowany do wskazanego bufora znakowego. Funkcja wymaga, że liczba opcjonalnych argumentów przekazanych do funkcji będzie nie mniejsza niż wynika to z treści tekstu sformatowanego. Przekazanie większej liczby argumentów niż jest to wymagane nie wywoła żadnych skutków ubocznych.

Znak terminalny jest zawsze dodawany na końcu łańcucha znaków.

Jeżeli nastąpi kopiowanie łańcuchów znaków, które na siebie nachodzą, zachowanie funkcji będzie wówczas nieokreślone.

Nota bezpieczeństwa

Nie ma sposobu na ograniczenie liczby zapisywanych znaków do bufora co oznacza, że kod używający niniejszej funkcji może pisać poza buforem. Pamiętaj więc aby bufor, który zostanie przekazany do funkcji zawsze był w stanie pomieścić tekst sformatowany.

Uwaga! Upewnij się, że tekst sformatowany nie może być wprowadzany przez użytkownika. Więcej szczegółów w dokumencie: » standard Ctekst sformatowany - sprintf.

Visual C++

Zaleca się używanie bezpiecznej wersji funkcji [MSDN] _snprintf. Funkcja _snprintf przyjmuje dodatkowy argument, który określa maksymalną liczbę bajtów, jaką jest w stanie przekazany bufor pomieścić.

Zagadnienia powiązane

tekst sformatowany - sprintfSpecyfikacja tekstu sformatowanego dla funkcji sprintf. (specyfikacja)
sscanfWczytuje dane różnego typu na podstawie sformatowanego tekstu, którego zawartość jest pobierana z przekazanego łańcucha znaków. (funkcja)