Magának egy C program forráskódjának nyomtatása

Magának egy C program forráskódjának nyomtatása

A C program forráskódjának kinyomtatása eltér a Quine-problémától. Itt bármelyik C programot úgy kell módosítanunk, hogy az a teljes forráskódot kiírja. 

Javasolt: Kérjük, próbálja ki a megközelítését {megy} először, mielőtt rátérnénk a megoldásra.

Megközelítés

  1. Használjon előre meghatározott __FILE__ makrót a fájl helyének megállapításához.
  2. Nyissa meg a forráskód fájlt olvasási módban, és kapja meg az fptr fájlmutatót. Ellenőrizze, hogy a fájl megnyitása sikeres volt-e vagy sem.
  3. Olvassa el a fájl teljes tartalmát a do-while ciklus és az fgetc használatával.
  4. Zárja be a fájlt az fclose funkcióval.

1. FÁJL makró módszer (fájlnév nyomtatása)

A fájlkezelés fogalmait használhatjuk a program forráskódjának kimenetként való kinyomtatására. Az ötlet az, hogy a tartalmat ugyanabból a fájlból jelenítsük meg, ahol a forráskódot írjuk. A C programozási fájl helyét egy előre meghatározott __FILE__ makró tartalmazza.

Alább látható a __FILE__ C programja:

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


A fenti program kimenete ennek a C fájlnak a helye. 

A program kimenete 1

Végrehajtás

A következő program ennek a C-fájlnak (forráskódnak) a tartalmát jeleníti meg, mivel a __FILE__ karakterláncban tartalmazza ennek a C-fájlnak a helyét. 

2. Jelenítse meg a programot

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

Kimenet:

Kvíz létrehozása