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
- Használjon előre meghatározott __FILE__ makrót a fájl helyének megállapításához.
- 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.
- Olvassa el a fájl teljes tartalmát a do-while ciklus és az fgetc használatával.
- 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.

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