Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

วิธีแสดงข้อความทั้งหมดทีละคำต่อบรรทัดในภาษา C


ก่อนอื่น เปิดไฟล์ในโหมดเขียน ต่อมา ป้อนข้อความจนถึงปลายไฟล์ (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