fseek()
fseek() ในภาษา C ใช้เพื่อย้ายตัวชี้ไฟล์ไปยังตำแหน่งเฉพาะ ออฟเซ็ตและสตรีมเป็นปลายทางของตัวชี้ ซึ่งกำหนดไว้ในพารามิเตอร์ฟังก์ชัน หากสำเร็จ จะคืนค่าศูนย์ มิฉะนั้น ค่าที่ไม่ใช่ศูนย์จะถูกส่งกลับ
นี่คือไวยากรณ์ของ fseek() ในภาษา C
int fseek(FILE *stream, long int offset, int whence)
นี่คือพารามิเตอร์ที่ใช้ใน fseek(),
-
สตรีม − นี่คือตัวชี้เพื่อระบุสตรีม
-
ออฟเซ็ต − นี่คือจำนวนไบต์จากตำแหน่ง
-
ที่ไหน − นี่คือตำแหน่งที่เพิ่มออฟเซ็ต
โดยที่ถูกกำหนดโดยค่าคงที่ตัวใดตัวหนึ่งต่อไปนี้
-
SEEK_END − สิ้นสุดไฟล์
-
SEEK_SET − เริ่มต้นไฟล์
-
SEEK_CUR - ตำแหน่งปัจจุบันของตัวชี้ไฟล์
นี่คือตัวอย่าง fseek() ในภาษา C -
สมมติว่าเรามีไฟล์ "demo.txt" ที่มีเนื้อหาดังต่อไปนี้ -
This is demo text! This is demo text! This is demo text! This is demo text!
ตอนนี้ให้เราดูรหัส
ตัวอย่าง
#include<stdio.h> void main() { FILE *f; f = fopen("demo.txt", "r"); if(f == NULL) { printf("\n Can't open file or file doesn't exist."); exit(0); } fseek(f, 0, SEEK_END); printf("The size of file : %ld bytes", ftell(f)); getch(); }
ผลลัพธ์
The size of file : 78 bytes
ในโปรแกรมข้างต้น ไฟล์ “demo.txt” จะเปิดขึ้นโดยใช้ฟังก์ชัน fopen() และฟังก์ชัน fseek() ใช้เพื่อย้ายตัวชี้ไปยังจุดสิ้นสุดของไฟล์
f = fopen("demo.txt", "r"); if(f == NULL) { printf("\n Can't open file or file doesn't exist."); exit(0); } fseek(f, 0, SEEK_END);
ย้อนกลับ()
ฟังก์ชั่น rewind() ใช้เพื่อกำหนดตำแหน่งของไฟล์เป็นจุดเริ่มต้นของสตรีมที่กำหนด ไม่คืนค่าใดๆ
นี่คือไวยากรณ์ของ rewind() ในภาษา C
void rewind(FILE *stream);
นี่คือตัวอย่าง rewind() ในภาษา C
สมมติว่าเรามีไฟล์ "new.txt" ที่มีเนื้อหาดังต่อไปนี้ -
This is demo! This is demo!
ทีนี้มาดูตัวอย่างกัน
ตัวอย่าง
#include<stdio.h> void main() { FILE *f; f = fopen("new.txt", "r"); if(f == NULL) { printf("\n Can't open file or file doesn't exist."); exit(0); } rewind(f); fseek(f, 0, SEEK_END); printf("The size of file : %ld bytes", ftell(f)); getch(); }
ผลลัพธ์
The size of file : 28 bytes
ในโปรแกรมข้างต้น ไฟล์ถูกเปิดโดยใช้ fopen() และถ้าตัวแปร pointer เป็นค่าว่าง จะแสดงไฟล์ can't open file หรือไฟล์ไม่มีอยู่จริง ฟังก์ชัน rewind() กำลังย้ายตัวชี้ไปที่จุดเริ่มต้นของไฟล์
f = fopen("new.txt", "r"); if(f == NULL) { printf("\n Can't open file or file doesn't exist."); exit(0); } rewind(f);