Tiskanje izvorne kode samega programa C

Tiskanje izvorne kode samega programa C

Tiskanje izvorne kode programa C se razlikuje od problema Quine. Tukaj moramo spremeniti kateri koli program C tako, da natisne celotno izvorno kodo. 

Priporočljivo: poskusite svoj pristop {gre} preden nadaljujete z rešitvijo.

Pristop

  1. Za pridobitev lokacije datoteke uporabite vnaprej določen makro __FILE__.
  2. Odprite datoteko izvorne kode v načinu za branje in pridobite kazalec datoteke fptr. Preverite, ali je datoteka uspešno odprta ali ne.
  3. Preberite vso vsebino datoteke z uporabo zanke do-while in fgetc.
  4. Zaprite datoteko s funkcijo fclose.

1. Metoda makra FILE (tiskanje imena datoteke)

Koncepte upravljanja datotek lahko uporabimo za tiskanje izvorne kode programa kot izhod. Ideja je prikazati vsebino iz iste datoteke, v kateri pišete izvorno kodo. Lokacija programske datoteke C je v vnaprej določenem makru __FILE__.

Spodaj je program C za uporabo __FILE__:

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__  );   }      


Rezultat zgornjega programa je lokacija te datoteke C. 

Rezultat programa 1

Izvedba

Naslednji program prikaže vsebino te določene datoteke C (izvorna koda), ker __FILE__ vsebuje lokacijo te datoteke C v nizu. 

2. Prikažite program

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  ;   }   

Izhod:

Ustvari kviz