Encontré un programa que se imprime en el sitio this, es decir, imprime el código del programa.programa que se imprime a sí mismo, ¿cómo funciona?
El código del programa es:
#include <stdio.h>
char *program = "#include <stdio.h>%cchar *program = %c%s%c;%cint main()%c{%cprintf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c";
//what is this line doing, what is the use of %c and %s and what properties of %c and %s are being used here?
int main()
{
printf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);
//what is this print function doing, and how?
return 0;
}
Y la explicación dada es:
Los dos trucos clave aquí está usando una cadena con un% incrustado s especificador para permitir que la cadena que contiene sí mismo cuando se imprime, y al utilice el especificador de formato% c para permitir la impresión de caracteres especiales como nuevas líneas, que de lo contrario no podrían incrustarse en la cadena de salida .
No entendí cómo funciona el programa. He mencionado las líneas sobre las que necesito una explicación, cómo funcionan y qué están haciendo. Por favor explique.
que he visto este le preguntó varias veces últimamente. ¿Es esto un desafío de tarea o programador? –
Nada como esto, acabo de encontrarlo. Si fuera una tarea, habría usado la etiqueta de tarea. – SpeedBirdNine
sus comentarios rompen el quine :) también, el sangrado no es correcto en el quine. [este es mi quine más reciente en C++] (http://codepad.org/sKvDs2Et) @MichaelDorgan: sí, es un desafío de programador arraigado históricamente – sehe