Τι είναι το snprintf() στη C++

Ti Einai To Snprintf Ste C



Η C++ είναι η ευρέως χρησιμοποιούμενη γλώσσα προγραμματισμού που προσφέρει πολλά πλεονεκτήματα στους προγραμματιστές. Περιλαμβάνει διάφορες ενσωματωμένες λειτουργίες που θα μπορούσαν να χρησιμοποιηθούν για πολλούς σκοπούς. Μεταξύ αυτών των συναρτήσεων, υπάρχει μια συνάρτηση που ονομάζεται snprint() , που ο κόσμος δύσκολα γνωρίζει.

Σε αυτό το άρθρο, θα εξηγήσουμε τη σύνταξη, τις παραμέτρους, τις τιμές επιστροφής και τη λειτουργία του snprintf() λειτουργία σε C++. Μπορεί κανείς να βρει πλήρη κατανόηση του snprintf() σε αυτόν τον οδηγό.

Τι είναι το snprintf() στη C++

Σε C++, snprintf() είναι μια συνάρτηση που χρησιμοποιείται για τη μορφοποίηση ή την αποθήκευση μιας σειράς τιμών χαρακτήρων και συμβολοσειρών γραμμένων στο buffer. Λειτουργεί παρόμοια με sprintf() λειτουργία αλλά έχει την ικανότητα να ξεπερνά τις υπερχειλίσεις buffer. ο αρχείο κεφαλίδας περιλαμβάνει το snprint() συνάρτηση και πρέπει να δηλωθεί εάν θέλετε να χρησιμοποιήσετε τη συνάρτηση στο πρόγραμμά σας. ο snprintf() Η συνάρτηση καθορίζει το μέγιστο περιεχόμενο που θα μπορούσε να έχει το buffer.







Το παρακάτω είναι η σύνταξη που πρέπει να χρησιμοποιήσετε snprintf() συνάρτηση σε C++:



snprintf ( απανθρακώνω * ρυθμιστής, μέγεθος_t buf_size, συνθ απανθρακώνω * μορφή, ... ) ;

Αφού γραφτούν οι χαρακτήρες, εισάγεται ένας μηδενικός χαρακτήρας κατάληξης. Εάν το MAX_BUFSIZE είναι μηδέν, τίποτα δεν αποθηκεύεται και το buffer μπορεί να λειτουργήσει ως μηδενικός δείκτης.



Παράμετροι του snprintf()

Ακολουθούν οι παράμετροι που χρησιμοποιούνται σε snprintf() λειτουργία.





  • ρυθμιστής : Ένας δείκτης σε μια προσωρινή μνήμη συμβολοσειράς όπου θα γραφτεί η έξοδος.
  • buf_size : MAX_BUFSIZE-1 είναι ο μέγιστος αριθμός χαρακτήρων που μπορεί κανείς να γράψει στο buffer.
  • μορφή : Μια συμβολοσειρά με μηδενικό τερματισμό έχει γραφτεί σε μια ροή αρχείου ως δείκτης. Αποτελείται από χαρακτήρες και πιθανούς προσδιοριστές μορφής που ξεκινούν με %. Οι τιμές των μεταβλητών που ακολουθούν μια συμβολοσειρά μορφής αντικαθιστούν τους προσδιοριστές μορφής.
  • (πρόσθετα επιχειρήματα) : Ανάλογα με τον τύπο της συμβολοσειράς μορφής, η συνάρτηση μπορεί να αναμένει μια λίστα πρόσθετων ορισμάτων, όλα να περιέχουν μια τιμή που χρησιμοποιείται για την αντικατάσταση του προσδιοριστή μορφής στη μορφή της συμβολοσειράς (ή, για MAX_BUFSIZE, έναν δείκτη σε μια θέση αποθήκευσης) .

Θα πρέπει να υπάρχουν τουλάχιστον τόσες πολλές τέτοιες παράμετροι όσες και οι τιμές προσδιοριστή μορφής. Η συνάρτηση αγνοεί οποιοδήποτε πρόσθετο όρισμα.

Τι επιστρέφει η snprintf().

Εάν η συνάρτηση είναι επιτυχής, επιστρέφει τον αριθμό των χαρακτήρων που θα θεωρούνταν γραμμένοι για ένα κατάλληλα μεγάλο buffer, εξαιρουμένου ενός μηδενικού χαρακτήρα τερματισμού. Όταν αποτύχει, αποδίδει αρνητική τιμή. Η έξοδος θα θεωρείται πλήρως γραμμένη εάν και μόνο εάν μια τιμή που επιστρέφεται είναι μη αρνητική και είναι μικρότερη από MAX_BUFSIZE.



Πώς να χρησιμοποιήσετε το snprintf() σε C++

Ακολουθεί ένα παράδειγμα χρήσης snprintf() στην C++:

Παράδειγμα

#include
#include
χρησιμοποιώντας χώρο ονομάτων std ;
ενθ κύριος ( )
{
απανθρακώνω buff_size [ 60 ] ;
ενθ return_Value, MAX_BUFSIZE = 60 ;
απανθρακώνω str [ ] = 'linux' ;
ενθ άρθρα = Τέσσερα πέντε ;
επιστροφή_τιμής = snprintf ( buff_size, MAX_BUFSIZE, 'Γεια σας %s χρήστες, ας διαβάσουμε %d άρθρα σχετικά με το bash' ,στρ, άρθρα ) ;
αν ( επιστροφή_τιμής > 0 && επιστροφή_τιμής < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'Αριθμός χαρακτήρων που γράφτηκαν = ' << επιστροφή_τιμής << endl ;
}
αλλού
cout << 'Σφάλμα εγγραφής στο buffer' << endl ;
ΕΠΙΣΤΡΟΦΗ 0 ;
}

Στον παραπάνω κώδικα, ορίσαμε το μέγιστο μέγεθος του buffer σε 60. Αυτό σημαίνει ότι ο κωδικός θα δέχεται χαρακτήρες όχι περισσότερους από 60. Έχουμε χρησιμοποιήσει το snprintf() λειτουργία για την έξοδο μιας συμβολοσειράς που έχει 56 χαρακτήρες και θα εμφανίζεται στο τερματικό εξόδου. Σε περίπτωση που οι χαρακτήρες που έχετε εισάγει είναι περισσότεροι από 60, το πρόγραμμα θα παρουσιάσει σφάλμα.

συμπέρασμα

Έχουμε δείξει το πρωτότυπο, τις παραμέτρους, τις τιμές επιστροφής και τη λειτουργία της C++ snprintf() συνάρτηση που γράφει μια μορφοποιημένη συμβολοσειρά σε μια προσωρινή μνήμη συμβολοσειράς χαρακτήρων. Περιγράψαμε ένα παράδειγμα με πλήρη κατανόηση snprintf() σε αυτόν τον οδηγό.