Język C++
sprintf
[funkcja] Zapisuje tekst sformatowany do wskazanego bufora znakowego. Składnia
#include <cstdio>
int sprintf(
char * buffer,
const char * format,
...
);
Argumenty
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: tekst 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 - sprintf | Specyfikacja tekstu sformatowanego dla funkcji sprintf. (specyfikacja) |
---|
sscanf | Wczytuje dane różnego typu na podstawie sformatowanego tekstu, którego zawartość jest pobierana z przekazanego łańcucha znaków. (funkcja) |
---|
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.