ก่อนอื่น เปิดไฟล์ในโหมดเขียน ต่อมา ป้อนข้อความจนถึงปลายไฟล์ (EOF) คือกด Ctrl+Z เพื่อปิดไฟล์
เปิดอีกครั้งในโหมดอ่าน จากนั้น อ่านคำจากไฟล์และพิมพ์แต่ละคำในบรรทัดแยกกัน แล้วปิดไฟล์
ตรรกะที่ใช้ พิมพ์ทีละคำต่อบรรทัด ดังนี้:
while ((ch = getc(fp)) != EOF) {
if(fp) {
char word[100];
while(fscanf(fp, "%s", word) != EOF) // อ่านคำจากไฟล์ {
printf("%s\n", word); // พิมพ์แต่ละคำในบรรทัดแยกกัน
}
fclose(fp); // ปิดไฟล์
}
}ตัวอย่าง
โปรแกรม C แสดงข้อความทั้งหมดทีละคำต่อบรรทัด:
#include <stdio.h>
int main() {
char ch;
FILE *fp;
fp = fopen("file.txt", "w"); // เปิดไฟล์ในโหมดเขียน
printf("enter the text then press ctrl Z:\n");
while((ch = getchar()) != EOF) {
putc(ch, fp);
}
fclose(fp);
fp = fopen("file.txt", "r");
printf("text on the file:\n");
while ((ch = getc(fp)) != EOF) {
if(fp) {
char word[100];
while(fscanf(fp, "%s", word) != EOF) { // อ่านคำจากไฟล์
printf("%s\n", word); // พิมพ์แต่ละคำในบรรทัดแยกกัน
}
fclose(fp); // ปิดไฟล์
} else {
printf("file doesnot exist");
// แจ้งผู้ใช้ว่าไฟล์ไม่มีอยู่
}
}
return 0;
}ผลลัพธ์
เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:
enter the text then press ctrl Z: Hi Hello Welcome To My World ^Z text on the file: Hi Hello Welcome To My World