43 ไฟล์เบื้องต้น (การอ่านไฟล์)


  • ไฟล์ในภาษาซี มี 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ฮาร์ดแวร์
    stdinStandard inputคียร์บอร์ด
    stdoutStandard outputหน้าจอ
    stderrStandard 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