logo

Imprimir el código fuente de un programa en C.

Imprimir el código fuente de un programa en C es diferente del problema de Quine. Aquí necesitamos modificar cualquier programa C de manera que imprima el código fuente completo. 

Recomendado: Pruebe su enfoque en {va} primero antes de pasar a la solución.

Acercarse

  1. Utilice la macro predefinida __FILE__ para obtener la ubicación del archivo.
  2. Abra el archivo de código fuente en modo lectura y obtenga el puntero del archivo fptr. Compruebe si el archivo se abrió correctamente o no.
  3. Lea todo el contenido del archivo usando el bucle do- while y fgetc.
  4. Cierre el archivo usando la función fclose.

1. Método de macro ARCHIVO (Nombre del archivo de impresión)

Podemos utilizar 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ás escribiendo el código fuente. La ubicación de un archivo de programación C está contenida dentro de una macro predefinida __FILE__.

A continuación se muestra el programa C para usar __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__); }  


La salida del programa anterior es la ubicación de este archivo C. 



Resultado del programa 1' title=

Implementación

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 cadena. 

2. Mostrar el programa

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; } 

Producción:

Crear cuestionario