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
- Za pridobitev lokacije datoteke uporabite vnaprej določen makro __FILE__.
- Odprite datoteko izvorne kode v načinu za branje in pridobite kazalec datoteke fptr. Preverite, ali je datoteka uspešno odprta ali ne.
- Preberite vso vsebino datoteke z uporabo zanke do-while in fgetc.
- 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.
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