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

พิมพ์ซอร์สโค้ดของโปรแกรม C เอง (Quine)

งานคือพิมพ์โปรแกรม C เองออกมา (Self-replicating program / Quine)

ใช้ระบบไฟล์ใน C อ่านเนื้อหาไฟล์ที่กำลังเขียนโค้ดอยู่ เช่นเขียนใน "code1.c" เปิดไฟล์โหมดอ่าน อ่านทั้งหมด พิมพ์ผลลัพธ์

แต่ต้องรู้ชื่อไฟล์ก่อน ใช้ macro __FILE__ ซึ่งคืนค่า path ของไฟล์ปัจจุบัน

ตัวอย่าง macro __FILE__

#include <stdio.h>
int main() {
    printf("%s", __FILE__);
}

โปรแกรมนี้จะพิมพ์ path ของไฟล์ต้นฉบับ

อัลกอริทึม

Start
Step 1: ใน int main()
    ประกาศตัวแปร char c
    เปิด FILE "file" = __FILE__ โหมด "r"
    Loop do-while c != EOF
        c = fgetc(file)
        putchar(c)
    ปิดไฟล์
Stop

ตัวอย่างโค้ด

#include <stdio.h>

int main(void) {
    char c;
    FILE *file = fopen(__FILE__, "r");
    do {
        c = fgetc(file);
        putchar(c);
    } while (c != EOF);
    fclose(file);
    return 0;
}

เอาต์พุต

#include <stdio.h>
int main(void) {
    char c;
    FILE *file = fopen(__FILE__, "r");
    do {
        c = fgetc(file);
        putchar(c);
    } while (c != EOF);
    fclose(file);
    return 0;
}