logo

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

  1. Utilizza la macro predefinita __FILE__ per ottenere la posizione del file.
  2. 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.
  3. Leggi tutto il contenuto del file usando il ciclo do- while e fgetc.
  4. 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. 



Risultati del programma 1' title=

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