Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In chính mã nguồn của chương trình C (Quine)


Nhiệm vụ: viết chương trình C in chính mã nguồn của nó (self-replicating program / Quine).

Sử dụng hệ thống file: mở file chứa mã nguồn ở chế độ đọc, đọc và in nội dung. Cần biết tên file → dùng macro __FILE__ (trả về đường dẫn file hiện tại).

Ví dụ macro __FILE__

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

Chương trình trên in đường dẫn file chứa mã nguồn.

Kết hợp với file I/O: fopen(__FILE__, "r") mở file hiện tại đọc.

Thuật toán

Bắt đầu
B1: Khai báo ký tự c
B2: Mở FILE "file" = __FILE__ ở chế độ "r"
B3: Vòng lặp do-while c != EOF
      c = fgetc(file)
      putchar(c)
B4: Đóng file
Kết thúc

Ví dụ mã nguồn

#include <stdio.h>

int main(void) {
    // In mã nguồn chính chương trình
    char c;
    // __FILE__ lấy đường dẫn file C hiện tại
    FILE* file = fopen(__FILE__, "r");
    do {
        c = fgetc(file);
        putchar(c);
    } while (c != EOF);
    fclose(file);
    return 0;
}

Kết quả đầu ra

#include <stdio.h>
int main(void) {
    // In mã nguồn chính chương trình
    char c;
    // __FILE__ lấy đường dẫn file C hiện tại
    FILE* file = fopen(__FILE__, "r");
    do {
        c = fgetc(file);
        putchar(c);
    } while (c != EOF);
    fclose(file);
    return 0;
}