Co to jest snprintf w C ++

Co to jest snprintf w C ++
C ++ to powszechnie używany język programowania, który oferuje szereg zalet programistom. Zawiera różne wbudowane funkcje, które można wykorzystać do wielu celów. Wśród tych funkcji istnieje funkcja o nazwie snprint (), które ludzie ledwo wiedzą.

W tym artykule wyjaśnimy składnię, parametry, zwracanie wartości i działanie snprintf () funkcja w c++. Można znaleźć pełne zrozumienie snprintf () W tym przewodniku.

Co to jest snprintf () w c++

W c++, snprintf () jest funkcją używaną do formatowania lub przechowywania serii wartości znaków i ciągów zapisanych w buforze. Działa podobnie jak sprintf () Funkcja, ale ma zdolność do pokonania przepełnień buforu. plik nagłówka zawiera snprint () funkcja i należy ją zadeklarować, jeśli chcesz użyć funkcji w swoim programie. snprintf () funkcja określa maksymalną zawartość, jaką mógłby mieć bufor.

Podana poniżej jest składnią do użycia snprintf () Funkcja w C ++:

snprintf (Char* Bufor, size_t buf_size, const char* format,…);

Po napisaniu bohaterów wstawiono końcową postać zerową. Jeśli max_bufSize wynosi zero, nic nie jest przechowywane, a bufor może działać jako wskaźnik zerowy.

Parametry Snprintf ()

Poniżej znajdują się parametry używane w snprintf () funkcjonować.

  • bufor: Wskaźnik do bufora sznurka, w którym dane wyjściowe zostanie napisane.
  • BUF_SIZE: Max_bufSize-1 to maksymalna liczba znaków, które można napisać do bufora.
  • format: Ciąg zakończony null został zapisany w strumieniu pliku jako wskaźnik. Składa się z znaków i możliwych specyfikatorów formatu zaczynających się od %. Wartości zmiennych, które podążają za ciągiem formatu zastępują specyfikatory formatu.
  • (Dodatkowe argumenty): W zależności od typu ciągu formatu funkcja może oczekiwać listy dodatkowych argumentów, wszystkich zawierających wartość używaną do zastąpienia specyfikatora formatu w formacie łańcucha (lub, dla max_bufsize, wskaźnika do miejsca przechowywania).

Powinno istnieć co najmniej tyle takich parametrów, ile istnieją wartości specyfikatora formatu. Funkcja ignoruje dodatkowy argument.

Co powraca snprintf ()

Jeśli funkcja się powiodła, zwraca liczbę znaków, które zostałyby uznane za napisane dla odpowiednio dużego bufora, z wyłączeniem końcowego znaku zerowego. Kiedy się nie powiedzie, daje wartość ujemną. Dane wyjściowe zostanie uznane za całkowicie napisane, jeśli i tylko wtedy, gdy zwrócona wartość nie jest ujemna i jest mniejsza niż max_bufSize.

Jak używać snprintf () w c++

Oto przykład użycia Snprintf () w C ++:

Przykład

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

char Buff_Size [60];
int return_value, max_bufSize = 60;
char str [] = "Linuxhint";
artykuły int = 45;
return_value = snprintf (Buff_Size, max_bufSize, „Hello %s Użytkownicy, przeczytajmy artykuły %D o bash”, str, artykuły);
if (return_value> 0 && return_value < MAX_BUFSIZE)

Cout << buff_size << endl;
Cout << "Number of characters written = " << return_Value << endl;

w przeciwnym razie
Cout << "Error writing to buffer" << endl;
powrót 0;

W powyższym kodzie ustawiamy maksymalny rozmiar bufora na 60. Oznacza to, że kod zaakceptuje znaki nie więcej niż 60. Użyliśmy snprintf () funkcja wyświetlania ciągu, która ma 56 znaków i będzie wyświetlany na terminalu wyjściowym. W przypadku, gdy wprowadzone znaki wynosi ponad 60, program będzie przez błąd.

Wniosek

Wykazaliśmy prototyp, parametry, wartości zwrotne i działanie C++ snprintf () funkcja, która zapisuje sformatowany ciąg do bufora sznurka znaków. Opisaliśmy przykład z pełnym zrozumieniem snprintf () W tym przewodniku.