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