Przestrzenie nazw
Warianty
Działania

sprintf

Z cppreference.com
< cpp‎ | io

Składnia:

    #include <cstdio>
    int sprintf( char *buffer, const char *format, ... );

Funkcja sprintf() działa podobnie jak printf(), z tą różnicą, iż wynik swego działania przekazuje do bufora. Wartość zwracana przez funkcję reprezentuje ilość przekazanych znaków do bufora. Przykładowo:

     char string[50];
     int file_number = 0;
 
     sprintf( string, "file.%d", file_number );
     file_number++;
     output_file = fopen( string, "w" );

Należy pamiętać, iż sprintf() nie jest przeciwieństwem funkcji takich jak atoi()

- gdzie atoi() konwertuje łańcuch znaków na liczbę, ale sprintf() może być użyty 

do konwersji liczby na łańcuch znaków. Przykładowo, poniższy kod używa funkcji sprintf() do konwersji liczby typu integer na odpowiadający jej łańcuch znaków:

     char result[100];
     int num = 24;
     sprintf( result, "%d", num );

Kod poniżej jest podobny, jednak dokonuje on konwersji liczby zmiennoprzecinkowej do jej postaci jako łańcuch znaków:

     char result[100];
     float fnum = 3.14159;
     sprintf( result, "%f", fnum );

Trzeba zaznaczyć, że funkcja ta nie sprawdza rozmiaru bufora w czasie konwersji i może spowodować zagrożenie związane z przepełnieniem tegoż bufora. Jako bezpieczniejszą alternatywę funkcji sprintf() można polecić funkcję c/io/snprintf.

Zobacz także: c/io/snprintf, fprintf, printf