เป็นฟังชันที่ใช้บันทึกข้อมูลตัวอักขระตัวเดียวลงไปในแฟ้มข้อมูลที่ต้องการ
รูปแบบการใช้ฟังก์ชัน
รูปแบบการใช้ฟังก์ชัน
putc(single_char,fp);
โดยที่
single_char คือ ค่าคงที่ชนิดตัวอักขระตัวเดียว หรือตัวแปรชนิดsingle_character
fp คือ file pointer ของแฟ้มข้อมูลที่ต้องการบันทึกข้อมูลลงไป
เพื่อความเข้าใจเกี่ยวกับการใช้งานฟังก์ชัน putc( ) จึงควรศึกษาโปรแกรมตัวอย่างดังนี้
โปรแกรมตัวอย่างที่ 9.1 แสดงการใช้ฟังก์ชัน putc( ) บันทึกข้อมูลตัวอักขระลงแฟ้มข้อมูล
/* file1.c */ | ||||
หมายเหตุ ก่อน run โปรแกรมต้องใส่แผ่นดิสก์เก็ตต์ไว้ในไดร์ฟ a: เพื่อเก็บแฟ้มข้อมูล testdata.dat ที่สร้างจากโปรแกรมนี้
ผลลัพธ์ที่ได้จากโปรแกรม
ข้อสังเกต ตัวอักษรที่เป็นสีเข้มที่ปรากฏในผลลัพธ์ที่ได้จากโปรแกรมคือข้อความที่พิมพ์ผ่านคีย์บอร์ด
คำแนะนำ เราค่อยตรวจสอบต่อไปว่าสามารถเขียนข้อมูลลงแฟ้มได้จริงหรือไม่ ในโปรแกรมตัวอย่างที่ 9.2
คำแนะนำ เราค่อยตรวจสอบต่อไปว่าสามารถเขียนข้อมูลลงแฟ้มได้จริงหรือไม่ ในโปรแกรมตัวอย่างที่ 9.2
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 9.1 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 9.1 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 1 คำสั่ง #include <stdio.h> สำหรับโปรแกรมนี้ ฟังก์ชันที่เพิ่มขึ้นมาจากโปรแกรมก่อน ๆ ที่เราพบ ที่ต้องใช้ควบคู่กับไฟล์ stdio.h คือ ฟังก์ชัน fopen( ) ในบรรทัดที่ 9
บรรทัดที่ 3 คำสั่ง #include <stdlib.h> จะสนับสนุนการทำงานของฟังก์ชัน exit( ) ในบรรทัดที่ 13
บรรทัดที่ 6 คำสั่ง FILE *fp; รูปแบบการประกาศแฟ้มข้อมูล โดยที่ fp คือตัวชี้ตำแหน่งข้อมูลในแฟ้ม (file pointer) เมื่อใช้คำสั่ง FILE *fp; มีผลทำให้ตัว file pointer ชี้ไปที่ตำแหน่งเริ่มต้นของแฟ้มข้อมูลทันที (ในโปรแกรมนี้จะให้แฟ้มข้อมูลอยู่ที่ไดร์ฟ a: ชื่อ testdata.dat โดยที่ fp นี้จะสามารถชี้ไปยังข้อมูลหรือการค้นข้อมูลจากแฟ้ม
บรรทัดที่ 9 คำสั่งนี้จะสัมพันธ์ และต่อเนื่องกับคำสั่งบรรทัดที่ 6 นั่นคือต้องการเปิดแฟ้มข้อมูลที่ไดร์ฟ a: ชื่อ testdata.dat เพื่อใช้สำหรับบันทึกข้อมูลลงแฟ้ม (write) อย่างเดียว และคำสั่งบรรทัดที่ 9 จะตรวจสอบด้วยว่า fp เท่ากับศูนย์ (NULL) หรือไม่ ถ้า fp เท่ากับศูนย์ แสดงว่าเกิดข้อผิดพลาดในการเปิดไฟล์ หรือไม่สามารถเปิดไฟล์ที่ระบุไว้ได้ ก็จะไปทำคำสั่งใน บรรทัดที่ 10 ถึง 14 นั่นคือ พิมพ์ Error in open file ที่จอภาพ และมีเสียง bell ดังเตือน กรณีที่จะเกิดข้อผิดพลาดได้ เช่น ไม่ได้ใส่แผ่นที่ไดร์ฟ a แต่ถ้าเปิดแฟ้มข้อมูลได้ก็จะให้ค่า fp ที่ไม่เท่ากับศูนย์ และไปทำคำสั่งตั้งแต่บรรทัดที่ 15 จนจบโปรแกรม
บรรทัดที่ 15 และ 16 พิมพ์ข้อความบอกให้ทราบว่า ถ้าต้องการออกจากโปรแกรมให้กด Enter แต่ถ้าจะทำงานต่อให้เติมประโยค และไปทำงานต่อในคำสั่งถัดไป
บรรทัดที่ 17 ถึง 21 คำสั่ง do จะวนรับตัวอักขระที่ผู้ใช้เติมเก็บไว้ที่ตัวแปร ch แล้วนำไปเขียนลงแฟ้มข้อมูล และสุดท้าย ตรวจสอบเงื่อนไขด้วยว่า ผู้ใช้เติม enter หรือไม่ จะได้ออกจากการทำงาน แต่ถ้าไม่ใช่ก็จะวนรับตัวอักขระไปเรื่อย ๆ
บรรทัดที่ 22 คำสั่ง fclose (fp); ปิดแฟ้มข้อมูล
9.5.2 ฟังก์ชัน getc( )
เป็นฟังก์ชันที่ใช้อ่านข้อมูลตัวอักขระตัวเดียวขึ้นจากแฟ้มข้อมูลที่ต้องการ
เป็นฟังก์ชันที่ใช้อ่านข้อมูลตัวอักขระตัวเดียวขึ้นจากแฟ้มข้อมูลที่ต้องการ
รูปแบบการใช้ฟังก์ชัน
getc(fp);
หรือ
single_char = getc(fp);
หรือ
single_char = getc(fp);
โดยที่
single_char คือ ตัวแปรชนิด single character ที่ใช้เก็บข้อมูลตัวอักขระ ตัวเดียว
fp คือ file pointer ของแฟ้มข้อมูลที่ต้องการบันทึกข้อมูลลงไป
เพื่อความเข้าใจเกี่ยวกับการใช้งานฟังก์ชัน getc( ) จึงควรศึกษาโปรแกรมตัวอย่างดังนี้
โปรแกรมตัวอย่างที่ 9.2 แสดงการใช้ฟังก์ชัน getc( ) อ่านข้อมูลตัวอักขระขึ้นจากแฟ้มข้อมูล
/* file2.c */ | ||||
หมายเหตุ ก่อน run โปรแกรมต้องใส่แผ่นดิสก์เก็ตต์ไว้ในไดร์ฟ a: ที่มีแฟ้ม testdata.dat ที่เคยสร้างไว้แล้ว เพื่อให้โปรแกรมอ่านข้อมูลจากแฟ้มนี้
ผลลัพธ์ที่ได้จากโปรแกรม
ข้อสังเกต ข้อมูลที่อ่านได้จากโปรแกรมตัวอย่างที่ 9.2 เป็นข้อมูลที่เราเขียนใส่ไว้ในแฟ้มข้อมูลจากโปรแกรมตัวอย่างที่ 9.1
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 9.2 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
การทำงานของโปรแกรมตัวอย่างที่ 9.2 จะคล้ายกับโปรแกรมตัวอย่างที่ 9.1 คือมีการเปิดแฟ้มข้อมูลขึ้นมา ชื่อ testdata.dat ที่ไดร์ฟ a: แต่เปิดขึ้นมาเพื่ออ่านข้อมูลในแฟ้ม ซึ่งมีการตรวจสอบการเปิดแฟ้มข้อมูลก่อนว่าผิดพลาดหรือไม่ ถ้าผิดพลาดจะพิมพ์ข้อความบอก และมีเสียง bell ดังขึ้น แต่ถ้าเปิดได้ก็จะเข้าไปอ่านข้อมูลในแฟ้มข้อมูลออกมาแสดงเรื่อย ๆ จนกว่าจะจบแฟ้ม ซึ่งคำสั่งบรรทัดที่ 19 (ch != EOF); จะเป็นการตรวจสอบว่าแฟ้มข้อมูลสิ้นสุดหรือไม่ (EOF คือ End Of File)
จากโปรแกรมตัวอย่างที่ 9.2 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
การทำงานของโปรแกรมตัวอย่างที่ 9.2 จะคล้ายกับโปรแกรมตัวอย่างที่ 9.1 คือมีการเปิดแฟ้มข้อมูลขึ้นมา ชื่อ testdata.dat ที่ไดร์ฟ a: แต่เปิดขึ้นมาเพื่ออ่านข้อมูลในแฟ้ม ซึ่งมีการตรวจสอบการเปิดแฟ้มข้อมูลก่อนว่าผิดพลาดหรือไม่ ถ้าผิดพลาดจะพิมพ์ข้อความบอก และมีเสียง bell ดังขึ้น แต่ถ้าเปิดได้ก็จะเข้าไปอ่านข้อมูลในแฟ้มข้อมูลออกมาแสดงเรื่อย ๆ จนกว่าจะจบแฟ้ม ซึ่งคำสั่งบรรทัดที่ 19 (ch != EOF); จะเป็นการตรวจสอบว่าแฟ้มข้อมูลสิ้นสุดหรือไม่ (EOF คือ End Of File)
0 ความคิดเห็น:
แสดงความคิดเห็น