หน่วยที่ 7 พอยน์เตอร์, ตัวแปรโครงสร้าง และการจัดการไฟล์
ความหมายของพอยน์เตอร์ พอยน์เตอร์หรือตัวชี้ เป็นตัวแปรที่ทำหน้าที่เก็บที่อยู่ของตัวแปรในหน่วยความจำ หากต้องการให้ตัวแปรพอยน์เตอร์ชี้ไปยังข้อมูลในอาร์เรย์ จะต้องนำเลขที่อยู่ตัวแรกของอาร์เรย์มาใส่ไว้ในตัวแปรพอยน์เตอร์ก่อนเสมอ
ประโยชน์ของตัวแปรพอยน์เตอร์ มีดังนี้
1. ตัวแปรพอยน์เตอร์เพยงตัวเดียว นอกจากจะสามารถใช้ชี้ไปยังข้อมูลที่มีเลขที่อยู่แตกต่างกันได้หลายค่าแล้ว การเปลี่ยนแปลงค่าในตัวแปรพอยน์เตอร์ ก็จะได้ที่อยู่ใหม่ของข้อมูลนั้น ๆ ด้วย
2. ตัวแปรแบบพอยน์เตอร์ช่วยให้สามารถสร้างตัวแปรใหม่ ในขณะที่โปรแกรมนั้นมีการประมวลผลอยู่
3. เราสามารถใช้ตัวแปรพอยน์เตอร์ร่วมกับตัวแปรประเภทต่าง ๆ ไม่ว่าจะเป็นอาเรย์, กลุ่มข้อมูล หรือตัวแปรแบบโครงสร้าง
ตัวแปรโครงสร้าง และการจัดการไฟล์
ตัวแปรโครงสร้างจะมีตัวแปรที่เป็นโครงสร้างตัวหนึ่งและประกอบด้วยสมาชิกต่าง ๆ ภายในตัวแปรโครงสร้าง ซึ่งการประกาศตัวแปรโครงสร้าง จะทำให้การใช้งานตัวแปรแลดูง่ายและเป็นระบบยิ่งขึ้น รวมถึงง่ายต่อการอ้างอิงเพื่อใช้งาน
ซึ่งแฟ้มข้อมูลที่เก็บข้อความหรือเรียกว่าเท็กซ์ไฟล์ จะมีคุณสมบัติที่เด่นชัด คือ เป็นไฟล์ที่เราอ่านออกและสามารถเรียกดูข้อมูลในเท็กซ์ไฟล์ได้จากโปรแกรมเอดิเตอร์ต่าง ๆ ได้ เช่น Notepad ในระบบปฏิบัติการวินโดวส์ หรือโปรแกรม Q-Edit ในระบบปฏิบัติการดอสหรืออาจเรียกดูได้จากคอมมานด์พร็อมต์ก็ได้ ด้วยการใช้คำสั่ง type
ไฟล์พอยน์เตอร์
การเขียนโปรแกรมภาษาซีเพื่อจัดการกับแฟ้มข้อมูลจะมีอยู่ 3 ขั้นตอนหลัก ๆ ด้วยกัน คือ
1. เปิดแฟ้มข้อมูล
2. ประมวลแฟ้ม ไม่ว่าจะเป็นการ เขียน/อ่าน/เพิ่ม
3. ปิดแฟ้มข้อมูล
และเมื่อมีการกระทำกับแฟ้มข้อมูลใด ๆ ไม่ว่าจะเป็นการอ่าน เขียน หรืออื่น ๆ ขั้นตอนแรกจำเป็นต้องมีการเปิดแฟ้มข้อมูลที่ต้องการเสียก่อน โดยจะต้องระบุด้วยว่าจะทำการเปิดแฟ้มข้อมูลเพื่ออะไร ซึ่งประกอบด้วยขั้นตอนดังนี้
1. เปิดแฟ้มข้อมูลเพื่ออ่าน
2. เปิดแฟ้มข้อมูลเพื่อบันทึก
3. เปิดแฟ้มข้อมูลเพื่อบันทึกข้อมูลเพิ่มเติมต่อท้าย
การเปิดและปิดไฟล์
ฟังก์ชัน fopen ( ) เป็นฟังก์ชันที่ใช้สำหรับเปิดไฟล์
การเปิดไฟล์เพื่อใช้งาน จะต้องระบุว่าไฟล์ที่เปิดนั้นต้องการให้ทำอะไร เช่น
“r” เปิดไฟล์เพื่ออ่านอย่างเดียว
“w” เปิดไฟล์ใหม่เพื่อบันทึก และหากเป็นไฟล์ที่มีอยู่แล้วก็จะสร้างใหม่ ซึ่งส่งผลให้ข้อมูลที่มีอยู่เดิมสูญหายหมด
“a” เปิดไฟล์ที่มีอยู่แล้วเพื่อบันทึกเพิ่มเติม
“r+” เปิดไฟล์ที่มีอยู่แล้วเพื่อทั้งอ่านและบันทึก
“w+” เปิดไฟล์ใหม่เพื่อทั้งอ่านและบันทึก
“a+” เปิดไฟล์ที่มีอยู่แล้วเพื่ออ่านและบันทึกเพิ่มเติมต่อท้าย
ฟังก์ชัน fclose ( ) เป็นฟังก์ชันที่ใช้สำหรับปิดไฟล์ ซึ่งมีรูปแบบ ดังนี้
การบันทึกข้อมูลลงในไฟล์และการถ่ายโอนข้อมูลจากไฟล์
การบันทึกข้อมูลลงในไฟล์แบบทีละตัวอักษร จะใช้ฟังก์ชัน fputc ( )
การอ่านข้อมูลทีละตัวอักษร จะใช้ฟังก์ชัน fgetc ( )
การบันทึกข้อมูลลงในไฟล์ที่มีรูปแบบ จะใช้ฟังก์ชัน fprintf ( )
การอ่านข้อมูลที่บันทึกจากฟังก์ชัน fprintf ( ) จะใช้ฟังก์ชัน fscanf ( )