snprintf() ใน C++ คืออะไร

Snprintf Ni C Khux Xari



C++ เป็นภาษาโปรแกรมที่ใช้กันทั่วไปซึ่งมีข้อดีหลายประการสำหรับโปรแกรมเมอร์ ประกอบด้วยฟังก์ชันต่างๆ ในตัวที่สามารถนำไปใช้ประโยชน์ได้หลากหลาย ในบรรดาฟังก์ชันเหล่านั้นมีฟังก์ชันที่เรียกว่า snprint() ที่คนแทบไม่รู้จัก

ในบทความนี้ เราจะอธิบายไวยากรณ์ พารามิเตอร์ คืนค่า และการทำงานของ snprintf() ฟังก์ชันในภาษา C++ เราสามารถค้นพบความเข้าใจที่สมบูรณ์ของ snprintf() ในคู่มือนี้

snprintf() ใน C++ คืออะไร

ใน C ++ snprintf() เป็นฟังก์ชันที่ใช้ในการจัดรูปแบบหรือจัดเก็บชุดอักขระและค่าสตริงที่เขียนไปยังบัฟเฟอร์ มันทำงานคล้ายกับ sprintf() ฟังก์ชัน แต่มีความสามารถในการเอาชนะบัฟเฟอร์ล้น เดอะ ไฟล์ส่วนหัวรวมถึงไฟล์ snprint() ฟังก์ชันและต้องประกาศหากคุณต้องการใช้ฟังก์ชันในโปรแกรมของคุณ เดอะ snprintf() ฟังก์ชันระบุเนื้อหาสูงสุดที่บัฟเฟอร์สามารถมีได้







ด้านล่างนี้คือไวยากรณ์ที่จะใช้ snprintf() ฟังก์ชั่นใน C ++:



snprintf ( ถ่าน * กันชน, size_t buf_size, คอสต์ ถ่าน * รูปแบบ, ... ) ;

เมื่อเขียนอักขระแล้ว อักขระ null ที่ลงท้ายจะถูกแทรก ถ้า MAX_BUFSIZE เป็นศูนย์ จะไม่มีการเก็บข้อมูลใดๆ และบัฟเฟอร์อาจทำหน้าที่เป็นตัวชี้ว่าง



พารามิเตอร์ของ snprintf()

ต่อไปนี้เป็นพารามิเตอร์ที่ใช้ใน snprintf() การทำงาน.





  • กันชน : ตัวชี้ไปยังบัฟเฟอร์สตริงที่เอาต์พุตจะถูกเขียน
  • buf_size : MAX_BUFSIZE-1 คือจำนวนอักขระสูงสุดที่สามารถเขียนไปยังบัฟเฟอร์
  • รูปแบบ : สตริงที่สิ้นสุดด้วยค่า null ถูกเขียนไปยังสตรีมไฟล์เป็นตัวชี้ ประกอบด้วยอักขระและตัวระบุรูปแบบที่เป็นไปได้ที่ขึ้นต้นด้วย % ค่าของตัวแปรที่ตามหลังสตริงรูปแบบจะแทนที่ตัวระบุรูปแบบ
  • (ข้อโต้แย้งเพิ่มเติม) : ขึ้นอยู่กับชนิดของสตริงรูปแบบ ฟังก์ชันอาจต้องการรายการอาร์กิวเมนต์เพิ่มเติม ซึ่งทั้งหมดมีค่าที่ใช้แทนตัวระบุรูปแบบในรูปแบบของสตริง (หรือสำหรับ MAX_BUFSIZE ตัวชี้ไปยังตำแหน่งที่จัดเก็บ) .

ควรมีพารามิเตอร์อย่างน้อยมากเท่ากับค่าของตัวระบุรูปแบบ ฟังก์ชันละเว้นอาร์กิวเมนต์เพิ่มเติมใดๆ

snprintf() ส่งคืนอะไร

หากฟังก์ชันทำงานสำเร็จ ฟังก์ชันจะส่งคืนจำนวนอักขระที่จะพิจารณาว่าเขียนสำหรับบัฟเฟอร์ขนาดใหญ่ที่เหมาะสม โดยไม่รวมอักขระ null ที่สิ้นสุด เมื่อล้มเหลวจะให้ค่าเป็นลบ เอาต์พุตจะถือว่าเขียนสมบูรณ์ก็ต่อเมื่อค่าที่ส่งคืนไม่เป็นค่าลบและมีขนาดเล็กกว่า MAX_BUFSIZE



วิธีใช้ snprintf() ใน C++

นี่คือตัวอย่างการใช้ snprintf() ใน C++:

ตัวอย่าง

#รวม
#รวมถึง
โดยใช้ เนมสเปซ มาตรฐาน ;
นานาชาติ หลัก ( )
{
ถ่าน buff_size [ 60 ] ;
นานาชาติ return_Value, MAX_BUFSIZE = 60 ;
ถ่าน สตริง [ ] = 'ลินุกซ์' ;
นานาชาติ บทความ = สี่ห้า ;
return_Value = snprintf ( buff_size, MAX_BUFSIZE, 'สวัสดีผู้ใช้ %s มาอ่าน %d บทความเกี่ยวกับ bash' ,str,บทความ ) ;
ถ้า ( return_Value > 0 && return_Value < MAX_BUFSIZE )
{
ศาล << buff_size << จบ ;
ศาล << 'จำนวนตัวอักษรที่เขียน = ' << return_Value << จบ ;
}
อื่น
ศาล << 'เกิดข้อผิดพลาดในการเขียนไปยังบัฟเฟอร์' << จบ ;
กลับ 0 ;
}

ในโค้ดข้างต้น เรากำหนดขนาดสูงสุดของบัฟเฟอร์เป็น 60 หมายความว่าโค้ดจะรับอักขระได้ไม่เกิน 60 เราได้ใช้ snprintf() ฟังก์ชันส่งออกสตริงที่มีอักขระ 56 ตัวและจะแสดงที่เทอร์มินัลเอาต์พุต ในกรณีที่ตัวอักษรที่คุณป้อนมากกว่า 60 โปรแกรมจะผ่านข้อผิดพลาด

บทสรุป

เราได้สาธิตต้นแบบ พารามิเตอร์ คืนค่า และการทำงานของ C++ snprintf() ฟังก์ชันที่เขียนสตริงที่จัดรูปแบบไปยังบัฟเฟอร์สตริงอักขระ เราอธิบายตัวอย่างด้วยความเข้าใจอย่างถ่องแท้ snprintf() ในคู่มือนี้