SNPRINTF -Funktion in C

SNPRINTF -Funktion in C
In der Funktion SNPRintf () möchten wir lernen, wie man die Daten formatiert. Die Datenformatierung ist unerlässlich, wenn wir einen Status des Prozesses oder eines Moduls in eine Datei schreiben, und ein anderes Modul kann darauf zugreifen. Zu diesem Zweck möchten wir diese Daten zwischen Modulen weitergeben. In diesem Fall möchten wir unsere Daten formatieren, damit andere Module sie auf die gleiche Weise verstehen können.

SNPRintf () -Funktionsprototyp

Die Funktion SNPrintf () ist ein vordefinierter Datentyp. Die Definition ist in einer Standard -Header -Datei in C -benannter Header -Datei geschrieben.

Merkmale der Funktion Snprintf ()

int snprintf (char *st, max_size, const char *Format,… .);

Hier verwenden wir mehrere Parameter, wie die Funktion dieser Parameter:

  • *ST ist ein Puffer, der die Zeichenfolge enthalten kann.
  • MAX_SIZE: Die höchste Anzahl von Zeichen, die ein Puffer enthalten kann.
  • Format, das eine Zeichenfolge und andere Spezifikationen wie printf () -Funktion enthält.
  • SNPRINTF () -Funktion gibt einen Ganzzahlwert zurück, und ihre Aufgabe besteht darin, die Anzahl der Zeichen im Puffer zu zählen.

Programmierbeispiel 1

Hier werden wir die Implementierung der Funktion SNPrintf () sehen:

#enthalten
#enthalten
int main ()

char buff_max [15]; // eine Zeichenfolge deklarieren
int x = 15;
double y = 26.5;
SNPRINTF (Buff_max, 14, "Untersuchen Sie den Überlauftest, die Werte von x = %d und y = %lf", x, y); // Verwendungen von SnPrintf () -Funktion
printf (" %s \ n", buff_max); // Drucken Sie den Wert der Zeichenfolge
Rückkehr 0;

Ausgang

Erläuterung

In diesem Programm -Beispiel werden wir die Funktion SNPRintf () verwenden, um eine Zeichenfolge zu formatieren. Hier deklarieren wir eine Zeichenfolge mit dem Namen "Buff_max", die maximal 15 Zeichen enthält, außer dass wir einen Ganzzahltyp deklarieren Variable x und doppelter Typ Variable y.

Wenn wir nun die Funktion von SNPRintf () verwenden, müssen wir einige Argumente in der Klammung übergeben. Die Argumente sind die ersten der Saiten. Wir müssen die Größe, die sich der Puffer ansammeln kann, erwähnen. Der dritte Parameter ist die formatierte Zeichenfolge und dann die Variable.

Der Vorteil der Verwendung der Funktion SNPRintf () besteht darin, dass nur 14 Zeichen gedruckt werden können und der Rest der Zeichen ignoriert wird. Das Programm ist sicher und das Programm stürzt nicht ab.

Programmierbeispiel 2

In diesem Programm -Beispiel sehen wir ein weiteres Beispiel für SnPrintf () -Funktion:

#enthalten
#enthalten
#define max_buff 1024
#define size_name (15)
Typedef Struct

Zeichenname [size_name]; // eine Zeichenfolge deklarieren
nicht signiert int rollno;
Doppelspuren;
STUDENT ; // Erstellen des benutzerdefinierten Datentyps
int main (intargc, char *argv [])

char buffer [max_buff] = 0;
Schüler S1 = .NAME = "AVISHEK" , .Rollno = 6 , .Markierungen = 77.17;
SNPRINTF (Puffer, Sizeof (Puffer), " %s %d %lf", S1.Name, S1.Rollno, S1.Markierungen); // Verwendungen von SnPrintf () -Funktion
printf ("buffer = %s \ n", puffer);
Rückkehr 0;

Ausgang

Erläuterung

In diesem Programm -Beispiel werden wir den Strukturnamen definieren STUDENT. Die Datenmitglieder der STUDENT sind Name, Roll Nr. und Marks. Innerhalb der Funktion main (). Wir deklarieren eine Variable S1, die einen Student -Datentyp ist. Wenn wir den Wert jeder Abschreckung der S1 -Variablen drucken möchten, verwenden wir die Funktion Snprintf (). Die Parameter des SNPRINTF sind Puffer, Größe des Puffers, das Format der Zeichenfolge und alle Datenelemente, die formatiert werden müssen. Wenn wir den Puffer drucken.

Programmierbeispiel 3

Nehmen wir ein weiteres wichtiges Beispiel für die Funktion SNPrintf () und wie sie funktioniert.

#enthalten
#enthalten
#enthalten
#define size_buffer 1024
#define size_name (20)
#define format_string "(%s,%d,%0.2lf) ","
#define size_buffer 1024
#define size_name (20)
#define format_string "(%s,%d,%0.2lf) ","
Typedef Struct

Zeichenname [size_name];
nicht signiert int rollno;
doppelter Prozentsatz;
Person; // eine Struktur definieren.
int main (intargc, char *argv [])

Zeichenpuffer [size_buffer] = 0; // einen Puffer deklarieren.
Person student_data [] = .name = "Raul", .Rollno = 1020, .Prozentsatz = 72.30334, \
.Name = "Paul", .Rollno = 1021, .Prozentsatz = 86.3456 \
; // Erstellen einer Reihe von Struktur.
int num_students = sizeof (student_data)/sizeof (Person);
int pos = 0;
für (int i = 0; i
POS += SNPRINTF (Buffer +POS, Sizeof (Puffer), Format_String, Student_Data [i].Name, Student_data [i].Rollno,
student_data [i].Prozentsatz);

printf ("buffer = [ %s] \ n", Buffer);
Rückkehr 0;

Ausgang

Erläuterung

Hier nehmen wir eine Reihe von Strukturen und sehen den Funktionsprozess von SNPRintf (). Wir definieren eine Struktur namens namens PERSON, und innerhalb der Main () -Funktion werden wir ein Array der Strukturen der Strukturen deklarieren PERSON Datentyp und zu diesem Array einen Wert zuweisen. Wir können eine Schleife für den Zähler verwenden. Endlich werden wir den gesamten Puffer mit allen Daten ausdrucken. Wir iterieren kontinuierlich über diese Reihe von Strukturen. Jetzt speichern wir alle Daten in diesem Puffer, abhängig von der Position.

Zum ersten Mal kam der erste Schüler und wird einige Daten zu diesem Puffer schreiben. Dann ändert sich der Wert der Position und der Puffer schreibt für diese Position. So funktioniert das.

Vorteil der Verwendung von SNPRintf () -Funktion

Der Vorteil der Verwendung der Funktion SNPRintf () besteht darin, dass der Puffer durch das Zeichen aus seiner maximalen Größe überflutet wird. Das Programm ist sicher, um einen Absturz zu vermeiden. Der Rest der Zeichen wird von der Funktion SNPrintf () ignoriert, die das Programm ausführt.

Abschluss

In der C -Sprache, ähnlich wie bei der Printf () -Funktion. Um das Problem der Verwendung der Sprintf () -Funktion zu beheben, wird der SNPRintf () in die C -Bibliothek gebracht, um das Programm sicherer und eleganter zu machen. In diesem Artikel haben wir die Funktion SNPrintf () in den angegebenen Beispielen erörtert.