Next: Exercice 1
Up: Les entrées-sorties
Previous: E/S formattées sur fichiers
En illustration du
printf et en guise de récréation, je propose un
programme dont l'exécution imprime le source du programme.
Ce n'est pas facile du tout de créer un tel programme si on exclut la
version triviale consistant à faire un
open sur le source, le lire
et l'imprimer.
Voici une solution possible que l'on trouve dans le source du compilateur
GNU C :
main(){char*p="main(){char*p=%c%s%c;printf(p,34,p,34,10);}%c";printf(p,34,p,34,10);}
Une indication pour le comprendre : 34 est le code ASCII de "
et 10 est le code ASCII de newline.
Bernard Cassagne
1998-12-09