C++ จัดให้มีไลบรารี
เขียนไฟล์ไบนารี่โดยใช้ C++
หากต้องการบันทึกข้อมูลลงในไฟล์ไบนารีโดยใช้ C ++ จะใช้วิธีการเขียน () ฟังก์ชันนี้เขียนตามจำนวนไบต์ที่ระบุไปยังสตรีมที่กำหนด โดยเริ่มต้นที่ตำแหน่งของตัวชี้ 'put' หากตัวชี้ “put” อยู่ท้ายไฟล์ แสดงว่าไฟล์ถูกขยาย อย่างไรก็ตาม ข้อมูลใหม่จะเขียนทับอักขระที่มีอยู่หากตัวชี้อยู่ในไฟล์ ในกรณีที่เกิดข้อผิดพลาดระหว่างขั้นตอนการเขียน สตรีมจะถูกทำเครื่องหมายว่าอยู่ในสถานะมีข้อผิดพลาด ตอนนี้ มาดูตัวอย่างเพื่อเรียนรู้วิธีเขียนในไฟล์ไบนารี่โดยใช้ฟังก์ชัน C++ ที่เรียบง่ายและมีอยู่แล้ว
วิธีที่ 1: การเขียนไฟล์ไบนารี่ด้วยข้อมูลที่มีโครงสร้าง
คุณอาจต้องเขียนข้อมูลที่มีโครงสร้าง เช่น โครงสร้างแบบกำหนดเอง ลงในไฟล์ไบนารีในหลายกรณี ลองพิจารณาตัวอย่างที่มีบันทึกของบุคคลซึ่งรวมถึงชื่อ ส่วนสูง และอายุของบุคคล ดูรหัสที่ระบุต่อไปนี้และดูคำอธิบาย:
#รวม
#รวม
โครงสร้าง บุคคล -
ถ่าน ชื่อ - ห้าสิบ - -
ภายใน อายุ -
สองเท่า ความสูง -
- -
ภายใน หลัก - - -
มาตรฐาน - ของกระแส outFile - 'คน.บิน' - มาตรฐาน - ไอโอเอส - ไบนารี่ - -
ถ้า - - outFile. เปิด - - - -
มาตรฐาน - เซอร์ - 'ข้อผิดพลาด! ไม่สามารถเปิดไฟล์เพื่อเขียนได้!' - มาตรฐาน - สิ้นสุด -
กลับ 1 -
-
คน คน1 - - “คัลซูม อิลยาส” - 25 - 1.75 - -
คน คน2 - - “คัลซูม บัจวา” - 30 - 1.68 - -
outFile. เขียน - ตีความใหม่_cast - ถ่าน - - - คนที่ 1 - - ขนาดของ - คนที่ 1 - - -
outFile. เขียน - ตีความใหม่_cast - ถ่าน - - - บุคคล2 - - ขนาดของ - บุคคล2 - - -
outFile. ปิด - - -
มาตรฐาน - ศาล - 'บันทึกของบุคคลนั้นถูกเขียนลงไบนารีไฟล์เรียบร้อยแล้ว' - มาตรฐาน - สิ้นสุด -
กลับ 0 -
-
นี่คือรายละเอียดของโค้ดพร้อมรายละเอียดเฉพาะ โปรแกรมเริ่มต้นด้วยการกำหนดโครงสร้างแบบกำหนดเองชื่อ “บุคคล” มีสามช่อง: ชื่อ อายุ และส่วนสูง รายละเอียดของฟิลด์เหล่านี้มีดังนี้:
- ชื่อ: สตริงสำหรับจัดเก็บชื่อของบุคคล (สูงสุด 50 อักขระ)
- อายุ: จำนวนเต็มเพื่อเก็บอายุของบุคคล
- ความสูง: สองเท่าเพื่อเก็บความสูงของบุคคล
หลังจากกำหนดโครงสร้าง “บุคคล” แล้ว ฟังก์ชันหลักจะเริ่มทำงานซึ่งเป็นจุดเริ่มต้นของโปรแกรม บรรทัดแรกในโปรแกรมหลักจะเปิดไฟล์ชื่อ “people.bin” เราใช้ “std::ofstream” เพื่อสร้างไฟล์ชื่อ “people.bin” สำหรับการเขียนข้อมูลในรูปแบบไบนารี การตรวจสอบว่าไฟล์เปิดได้สำเร็จหรือไม่นั้นสำคัญมาก มิฉะนั้น ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นและโปรแกรมหยุดทำงาน ดังนั้น ด้วยความช่วยเหลือของเงื่อนไข “if” และฟังก์ชัน is_open() เราจะตรวจสอบว่าไฟล์เปิดได้สำเร็จหรือไม่
ที่นี่วัตถุ 'บุคคล' ทั้งสองจะถูกสร้างขึ้น เรากำหนดตัวแปรสองตัวคือ 'person1' และ 'person2' ของประเภท 'Person' เรากำหนดค่าชื่อตัวแปร อายุ และส่วนสูงให้กับ 'Kalsoom Ilyas' และ 'Kalsoom Bajwa'
ตอนนี้เรามีข้อมูลที่จะเขียนในไฟล์ไบนารีแล้ว ให้เราดำเนินการฟังก์ชันจริงด้วยฟังก์ชัน write() เราใช้ 'outFile.write' เพื่อเขียนเนื้อหาของแต่ละวัตถุ 'บุคคล' ลงในไฟล์ “reตีความ_cast
หลังจากเขียนข้อมูลลงในไฟล์แล้ว สิ่งที่สำคัญมากคือต้องปิดมันอย่างถูกต้อง เพื่อไม่ให้ข้อมูลสูญหายเนื่องจากฟังก์ชันอื่นใด เราใช้ outFile.close() เพื่อเผยแพร่ทรัพยากรที่เกี่ยวข้องกับไฟล์และรับรองว่าข้อมูลจะถูกเขียนอย่างถูกต้อง สุดท้าย เราจะพิมพ์ข้อความที่ยืนยันว่าข้อมูลเขียนลงในไฟล์ไบนารี่ได้สำเร็จ
หากเราอธิบายตัวอย่างนี้ด้วยเงื่อนไขที่ง่ายกว่านี้ ลองจินตนาการถึงสมุดบันทึกพิเศษที่สามารถเก็บข้อมูลเกี่ยวกับบุคคลในภาษาลับเท่านั้น รหัสนี้สร้างพิมพ์เขียวสำหรับการจัดระเบียบข้อมูล (ชื่อ อายุ ส่วนสูง) โดยจะเปิดสมุดบันทึก กรอกโปรไฟล์ของคนสองคน แปลข้อมูลเป็นภาษาลับ และเขียนไว้ข้างในอย่างประณีต จากนั้นจะปิดโน้ตบุ๊กอย่างแน่นหนา เพื่อเก็บรักษาโปรไฟล์ไว้ใช้ในอนาคต อ้างถึงผลลัพธ์ของโปรแกรมที่ให้ไว้ในสแน็ปช็อตต่อไปนี้:
วิธีที่ 2: การเขียนจำนวนเต็มลงในไฟล์ไบนารี
ในวิธีนี้ อาร์เรย์ของจำนวนเต็มจะถูกเขียนลงในไฟล์ไบนารีชื่อ 'integers.bin' “reตีความ_cast
#รวม
ภายใน หลัก - - -
มาตรฐาน - ของกระแส outFile - 'จำนวนเต็ม.bin' - มาตรฐาน - ไอโอเอส - ไบนารี่ - -
ถ้า - - outFile. เปิด - - - -
มาตรฐาน - เซอร์ - 'ข้อผิดพลาด! ไม่สามารถเปิดไฟล์เพื่อเขียนได้!' - มาตรฐาน - สิ้นสุด -
กลับ 1 -
-
ภายใน ตัวเลข - - - - 42 - 99 - - 1 - 0 - -
outFile. เขียน - ตีความใหม่_cast - ถ่าน - - ตัวเลข - - ขนาดของ - ตัวเลข - - -
outFile. ปิด - - -
มาตรฐาน - ศาล - 'เขียนจำนวนเต็มที่กำหนดลงในไฟล์ไบนารี่สำเร็จ' - มาตรฐาน - สิ้นสุด -
กลับ 0 -
-
นี่คือรายละเอียดของโค้ดพร้อมรายละเอียดเฉพาะ:
“#include
บรรทัดถัดไปซึ่งก็คือ “ตัวเลข int[] = {42, 99, -1, 0};” กำหนดอาร์เรย์ชื่อ 'ตัวเลข' ด้วยจำนวนเต็ม 42, 99, -1 และ 0 'outFile.write(reตีความ_cast
บทสรุป
การเขียนไฟล์ไบนารี่ในภาษา C++ ถือเป็นทักษะสำคัญในการจัดการข้อมูลประเภทต่างๆ ได้อย่างมีประสิทธิภาพ ในการสำรวจการเขียนไฟล์ไบนารี่ในภาษา C++ นี้ เราได้เรียนรู้วิธีการใช้งานคลาส “ofstream” เพื่อจัดการข้อมูลไบนารี่อย่างมีประสิทธิภาพ ไม่ว่าจะจัดการกับจำนวนเต็มธรรมดาหรือข้อมูลที่มีโครงสร้างโดยใช้โครงสร้างแบบกำหนดเอง กระบวนการเกี่ยวข้องกับการเปิดสตรีมไฟล์ การเขียนข้อมูลในรูปแบบไบนารี่ แล้วปิดไฟล์ ความสามารถนี้ทำให้นักพัฒนา C++ มีความยืดหยุ่นในการทำงานกับประเภทข้อมูลไบนารีที่หลากหลาย ซึ่งเอื้อต่อความคล่องตัวของภาษาในแอปพลิเคชันที่มีตั้งแต่การเขียนโปรแกรมระดับระบบไปจนถึงการประมวลผลมัลติมีเดีย