Stampare il codice sorgente di un programma C stesso è diverso dal problema Quine. Qui dobbiamo modificare qualsiasi programma C in modo che stampi l'intero codice sorgente.
Consigliato: prova il tuo approccio {va} prima di passare alla soluzione.
Approccio
- Utilizza la macro predefinita __FILE__ per ottenere la posizione del file.
- Apri il file del codice sorgente in modalità lettura e ottieni il puntatore al file fptr. Controlla se il file è stato aperto correttamente o meno.
- Leggi tutto il contenuto del file usando il ciclo do- while e fgetc.
- Chiudi il file utilizzando la funzione fclose.
1. Metodo macro FILE (stampa del nome del file)
Possiamo usare i concetti di gestione dei file per stampare il codice sorgente del programma come output. L'idea è quella di visualizzare il contenuto dello stesso file su cui stai scrivendo il codice sorgente. La posizione di un file di programmazione C è contenuta all'interno di una macro predefinita __FILE__.
Di seguito è riportato il programma C da utilizzare __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__); }
L'output del programma sopra è la posizione di questo file C.

Attuazione
Il seguente programma visualizza il contenuto di questo particolare file C (codice sorgente) perché __FILE__ contiene la posizione di questo file C in una stringa.
2. Visualizzare il programma
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; }
Produzione:
Crea quiz