- ไฟล์ในภาษาซี มี 2 โหมดคือ text mode และ binary mode.
- Text mode คือโหมดที่จัดเก็บและแสดงข้อมูลในรูปแบบตัวอักษรที่มนุษย์เข้าใจ
- Binary mode คือโหมดที่สามารถเก็บข้อมูลได้ทุกชนิด รวมทั้งแบบ text ด้วย จะเป็นการเก็บข้อมูลในรูปเลขฐาน 2 ( 1 กับ 0 )
Mode | การทำงาน |
---|---|
r | เปิดไฟล์สำหรับอ่าน ถ้าไม่เจอจะคืนค่า NULL |
w | เปิดไฟล์สำหรับการเขียน ถ้าไม่เจอ มันจะสร้างขึ้นมาใหม่ ถ้ามีไฟล์ที่มีชื่อเดียวกันอยู่ก่อนแล้ว จะทำการลบไฟล์เก่าโดยไม่แจ้งเตือน แล้วสร้างไฟล์ใหม่ทับ |
a | เปิดไฟล์เพื่อเขียนต่อท้าย ถ้าไม่เจอ จะสร้างไฟล์ขึ้นมาใหม่ ถ้ามีไฟล์ชื่อเดียวกันอยู่ก่อนแล้ว จะทำการเขียนข้อมูลใหม่ต่อท้ายข้อมูลที่มีอยู่ |
r+ | เปิดไฟล์เพื่อนการอ่านและเขียน ถ้าไม่เจอ จะสร้างขึ้นมาใหม่ ถ้าเจอ และโปรแกรมเขียนค่าใหม่เข้าไป ข้อมูลใหม่จะเริ่มเขียน ณ จุดเริ่มต้น และจะเขียนทับข้อมูลที่มีอยู่ |
w+ | เปิดไฟล์สำหรับการอ่านและเขียน ถ้าไม่เจอ จะสร้างใหม่ ถ้ามีไฟล์อยู่ก่อนแล้ว จะถูกเขียนทับ |
a+ | เปิดไฟล์เพื่ออ่านและเขียนต่อท้าย ถ้าไม่เจอ ก็จะสร้างไฟล์ใหม่ ถ้ามีไฟล์อยู่แล้ว จะทำการเขียนข้อมูลต่อท้าย |
- stram คือ สายอักขระ หรือจะให้ถูกต้องมากกว่านั้นคือ ชุดข้อมูลชนิด Byte ชุดๆหนึ่ง
- stream ที่ถูกนำเข้ามาใช้ในโปรแกรม (เช่น การป้อนข้อมูลผ่านคียร์บอร์ด ) เรียกว่า input
- stream ที่ถูกส่งออกไปจากโปรแกรม (เช่นการแสดงผลออกทางหน้าจอ) เรีนกว่า output
- โปรแกรมจะไม่สนใจว่า input จะมาจากไหน ไม่ว่าจะเป็น ไฟล์ในฮาร์ดดิสก์ จากเน็ตเวิร์ก หรือจากคียร์บอร์ด โปรแกรมจะมองแค่ว่าเป็น input stream ทั้งนั้น โดยไม่สนใจว่าจะมาจากที่ใด
- File ในที่นี้ไม่ได้แปลว่า ไฟล์ข้อมูลที่เราใช้กัน เช่น ไฟล mp3 ไฟลเวิร์ด ไฟลรูปภาพ แต่หมายถึงตัวกลางระหว่างโปรแกรมกับ ฮาร์ดแวร์ที่ใช้เก็บไฟล์ เช่น ฮาร์ดดิสก์
- Stream มีแค่ 2 ชนิด คือ แบบอักษร และ ไบนารี่ ( text mode , binary mode )
- Text mode คือโหมดที่จัดเก็บและแสดงข้อมูลในรูปแบบตัวอักษรที่มนุษย์เข้าใจ
- Binary mode คือโหมดที่สามารถเก็บข้อมูลได้ทุกชนิด รวมทั้งแบบ text ด้วย จะเป็นการเก็บข้อมูลในรูปเลขฐาน 2 ( 1 กับ 0 )
ANSI ( American National Standards Institute ) ได้เตรียม 3 stream มาตรฐานสำหรับการใช้งานเกี่ยวกับ stream
ชื่อ Stream ฮาร์ดแวร์ stdin Standard input คียร์บอร์ด stdout Standard output หน้าจอ stderr Standard error หน้าจอ - printf , puts ฟังก์ชั่นสองตัวนี้จะทำการใช้งานในส่วนของ stdout
- scanf , gets พวกนี้จะใช้งานในส่วนของ stdin
ฟังก์ชั่นมาตรฐานสำหรับ input / output
ฟังก์ชั่นที่ใช้ stream มาตรฐาน ฟังก์ชั่นที่ใช้ stream ที่ต้องระบุไว้ คำอธิบาย printf() fprintf() แสดงผล vprintf() vfprintf() แสดงผล ใช้ตัวแปร puts() fputs() ข้อความ (สตริง) putchar() putc(),fputc() ตัวอักษร scanf() fscanf() นำเข้า vscanf() vfscanf() นำเข้า ใช้ตัวแปร gets() fgets() นำเข้า ข้อความ getchar() getc(),fgetc() นำเข้าตัวอักษร perror() - แสดงผลสำหรับ stderr
ฟังก์ชั่นที่เติม ‘\n’ ให้อัตโนมัติ ฟังก็ชั่นที่ไม่เติม ‘\n’ puts() fputs() - perror() อยู่ใน stdlib.h ( แล้วแต่คอมไพเลอร์ )
- vprintf() กับ vfprintf() อยู่ใน stdargs.h
No comments:
Post a Comment