logo

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' title=

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