Het afdrukken van de broncode van een C-programma zelf is anders dan het Quine-probleem. Hier moeten we elk C-programma zo aanpassen dat het de hele broncode afdrukt.
Aanbevolen: Probeer uw aanpak eens uit {gaat} eerst voordat u verdergaat met de oplossing.
Benadering
- Gebruik de vooraf gedefinieerde macro __FILE__ om de locatie van het bestand op te halen.
- Open het broncodebestand in de leesmodus en haal de bestandsaanwijzer fptr op. Controleer of het bestand succesvol is geopend of niet.
- Lees de volledige inhoud van het bestand met behulp van de do-while-lus en fgetc.
- Sluit het bestand met de functie fclose.
1. FILE Macro-methode (bestandsnaam afdrukken)
We kunnen de concepten van bestandsverwerking gebruiken om de broncode van het programma als uitvoer af te drukken. Het idee is om de inhoud weer te geven uit hetzelfde bestand waarin u de broncode schrijft. De locatie van een C-programmeerbestand bevindt zich in een vooraf gedefinieerde macro __FILE__.
Hieronder vindt u het C-programma dat u __FILE__ moet gebruiken:
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__); }
De uitvoer van het bovenstaande programma is de locatie van dit C-bestand.

Uitvoering
Het volgende programma geeft de inhoud van dit specifieke C-bestand (broncode) weer, omdat __FILE__ de locatie van dit C-bestand in een string bevat.
2. Geef het programma weer
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; }
Uitgang:
Quiz maken