¿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