C++ میں snprintf() کیا ہے؟

C My Snprintf Kya



C++ عام طور پر استعمال ہونے والی پروگرامنگ زبان ہے جو پروگرامرز کو کئی فوائد فراہم کرتی ہے۔ اس میں مختلف بلٹ ان فنکشنز شامل ہیں جنہیں بہت سے مقاصد کے لیے استعمال کیا جا سکتا ہے۔ ان افعال میں، ایک فنکشن ہے جسے کہا جاتا ہے snprint() جسے لوگ شاید ہی جانتے ہوں۔

اس مضمون میں، ہم نحو، پیرامیٹرز، واپسی کی قدروں اور کام کرنے کی وضاحت کریں گے۔ snprintf() C++ میں فنکشن۔ کی مکمل تفہیم حاصل کر سکتے ہیں۔ snprintf() اس گائیڈ میں.

C++ میں snprintf() کیا ہے؟

C++ میں، snprintf() ایک فنکشن ہے جو بفر پر لکھے گئے کریکٹر اور سٹرنگ ویلیو کی ایک سیریز کو فارمیٹ یا اسٹور کرنے کے لیے استعمال ہوتا ہے۔ یہ اسی طرح کام کرتا ہے۔ sprintf() فنکشن لیکن اس میں بفر اوور فلوز پر قابو پانے کی صلاحیت ہے۔ دی ہیڈر فائل میں شامل ہے۔ snprint() فنکشن اور اگر آپ اپنے پروگرام میں فنکشن استعمال کرنا چاہتے ہیں تو اس کا اعلان کرنا ضروری ہے۔ دی snprintf() فنکشن زیادہ سے زیادہ مواد کی وضاحت کرتا ہے جو بفر میں ہوسکتا ہے۔







ذیل میں استعمال کرنے کے لیے نحو ہے۔ snprintf() C++ میں فنکشن:



snprintf ( چار * بفر سائز_ٹی buf_size، const چار * فارمیٹ،... ) ;

حروف لکھے جانے کے بعد، ایک ختم ہونے والا null کردار ڈالا جاتا ہے۔ اگر MAX_BUFSIZE صفر ہے تو کچھ بھی ذخیرہ نہیں کیا جاتا ہے اور بفر ایک null پوائنٹر کے طور پر کام کر سکتا ہے۔



snprintf() کے پیرامیٹرز

میں استعمال ہونے والے پیرامیٹرز درج ذیل ہیں۔ snprintf() فنکشن





  • بفر : سٹرنگ بفر کی طرف اشارہ کرنے والا جہاں آؤٹ پٹ لکھا جائے گا۔
  • buf_size : MAX_BUFSIZE-1 حروف کی زیادہ سے زیادہ گنتی ہے جسے کوئی بفر پر لکھ سکتا ہے۔
  • فارمیٹ : ایک صفر ختم شدہ سٹرنگ کو ایک فائل سٹریم میں بطور پوائنٹر لکھا گیا ہے۔ یہ حروف اور % سے شروع ہونے والے ممکنہ فارمیٹ کی وضاحت کرنے والوں سے بنا ہے۔ متغیرات کی قدریں جو فارمیٹ سٹرنگ کی پیروی کرتی ہیں وہ فارمیٹ سپیکیفائر کو بدل دیتی ہیں۔
  • (اضافی دلائل) : فارمیٹ سٹرنگ کی قسم پر منحصر ہے، فنکشن اضافی دلائل کی ایک فہرست کی توقع کر سکتا ہے، سبھی ایک ایسی قدر پر مشتمل ہیں جو سٹرنگ کی شکل میں فارمیٹ سپیکر کو تبدیل کرنے کے لیے استعمال ہوتی ہے (یا، MAX_BUFSIZE کے لیے، اسٹوریج کے مقام کی طرف اشارہ کرنے والا) .

کم از کم اس طرح کے بہت سے پیرامیٹرز ہونے چاہئیں جتنے فارمیٹ اسپیفائر ویلیوز ہیں۔ فنکشن کسی بھی اضافی دلیل کو نظر انداز کرتا ہے۔

snprintf() واپس کیا کرتا ہے۔

اگر فنکشن کامیاب ہو جاتا ہے، تو یہ حروف کی تعداد لوٹاتا ہے جو ایک مناسب طور پر بڑے بفر کے لیے لکھے گئے سمجھے جائیں گے، ختم ہونے والے null کردار کو چھوڑ کر۔ جب یہ ناکام ہوجاتا ہے، تو یہ منفی قدر پیدا کرتا ہے۔ آؤٹ پٹ کو مکمل طور پر لکھا ہوا سمجھا جائے گا اگر اور صرف اس صورت میں جب واپس کی گئی قدر غیر منفی ہو اور MAX_BUFSIZE سے چھوٹی ہو۔



C++ میں snprintf() کا استعمال کیسے کریں۔

یہاں C++ میں snprintf() استعمال کرنے کی ایک مثال ہے۔

مثال

# شامل کریں
# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
چار buff_size [ 60 ] ;
int واپسی_قدر، MAX_BUFSIZE = 60 ;
چار str [ ] = 'لینکس' ;
int مضامین = چار پانچ ;
واپسی_قدر = snprintf ( بف_سائز، MAX_BUFSIZE، 'ہیلو %s صارفین، آئیے bash کے بارے میں %d مضامین پڑھیں' str، مضامین ) ;
اگر ( واپسی_قدر > 0 && واپسی_قدر < MAX_BUFSIZE )
{
cout << buff_size << endl ;
cout << 'لکھے ہوئے حروف کی تعداد =' << واپسی_قدر << endl ;
}
اور
cout << 'بفر پر لکھنے میں خرابی' << endl ;
واپسی 0 ;
}

مندرجہ بالا کوڈ میں، ہم نے بفر کا زیادہ سے زیادہ سائز 60 پر سیٹ کیا ہے۔ اس کا مطلب ہے کہ کوڈ ایسے حروف کو قبول کرے گا جو 60 سے زیادہ نہیں ہوں گے۔ ہم نے استعمال کیا ہے۔ snprintf() ایک سٹرنگ کو آؤٹ پٹ کرنے کے لیے فنکشن جس میں 56 حروف ہیں اور یہ آؤٹ پٹ ٹرمینل پر ظاہر ہوگا۔ اگر آپ کے درج کردہ حروف 60 سے زیادہ ہیں، تو پروگرام میں غلطی ہو جائے گی۔

نتیجہ

ہم نے پروٹو ٹائپ، پیرامیٹرز، ریٹرن ویلیوز، اور C++ کے کام کا مظاہرہ کیا ہے۔ snprintf() فنکشن جو کریکٹر سٹرنگ بفر پر فارمیٹ شدہ سٹرنگ لکھتا ہے۔ ہم نے مکمل فہم کے ساتھ ایک مثال بیان کی۔ snprintf() اس گائیڈ میں.