Stampa del codice sorgente di un programma C stesso
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