Imprimir el código fuente de un programa C en sí

¿Cómo imprimir el código fuente de un programa C en sí? Tenga en cuenta que esto es diferente del problema de Quine. Aquí necesitamos modificar cualquier programa C de manera que imprima el código fuente completo.

Explicación :
podemos usar los conceptos de manejo de archivos para imprimir el código fuente del programa como salida. La idea es: mostrar el contenido del mismo archivo en el que está escribiendo el código fuente.

La ubicación de un archivo de programación C está contenida dentro de una macro predefinida __FILE__. Por ejemplo:

   
#include <stdio.h>
int main()
{
   // Prints location of C this C code.
   printf("%s",__FILE__);
}

La salida del programa anterior es la ubicación de este archivo C.
El siguiente programa muestra el contenido de este archivo C en particular (código fuente) porque __FILE__ contiene la ubicación de este archivo C en una string.

   
// A C program that prints its source code.
#include <stdio.h>
   
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;
}

Salida :

// A C program that prints its source code.
#include <stdio.h>
 
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;
}

Nota: Es posible que el programa anterior no funcione como compilador en línea, ya que fopen podría estar bloqueado.

Este artículo es una contribución de Rishav Raj . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *