logo

Bir C programının kendisinin kaynak kodunu yazdırma

Bir C programının kaynak kodunun yazdırılması Quine probleminden farklıdır. Burada herhangi bir C programını kaynak kodunun tamamını yazdıracak şekilde değiştirmemiz gerekiyor. 

Önerilen: Lütfen yaklaşımınızı deneyin {gitmek} Çözüme geçmeden önce ilk olarak.

Yaklaşmak

  1. Dosyanın konumunu almak için önceden tanımlanmış makro __FILE__'yi kullanın.
  2. Kaynak kod dosyasını okuma modunda açın ve fptr dosya işaretçisini alın. Dosyanın başarıyla açılıp açılmadığını kontrol edin.
  3. Do-while döngüsünü ve fgetc'yi kullanarak dosyanın tüm içeriğini okuyun.
  4. Fclose işlevini kullanarak dosyayı kapatın.

1. DOSYA Makro Yöntemi (Dosya Adını Yazdırma)

Programın kaynak kodunu çıktı olarak yazdırmak için dosya işleme kavramlarını kullanabiliriz. Buradaki fikir, kaynak kodunu yazdığınız dosyanın içeriğini görüntülemektir. Bir C programlama dosyasının konumu, önceden tanımlanmış bir makro __FILE__ içinde bulunur.

__FILE__ kullanacak C programı aşağıdadır:

C
 // C program to display the  // location of the file #include  // Driver code int main() {  // Prints location of C this C code.  printf('%s' __FILE__); }  


Yukarıdaki programın çıktısı bu C dosyasının konumudur. 



Programın Çıktısı 1' title=

Uygulama

Aşağıdaki program bu özel C dosyasının içeriğini (kaynak kodu) görüntüler çünkü __FILE__ bu C dosyasının konumunu bir dizede içerir. 

2. Programı Görüntüleyin

C
// C program that prints its source code. #include   // Driver code int main(void) {  // We can append this code to any C program  // such that it prints its source code.  char c;   FILE *fp = fopen(__FILE__ 'r');    do  {  c = fgetc(fp);  putchar(c);  }  while (c != EOF);    fclose(fp);    return 0; } 

Çıkış:

Test Oluştur