logo

Impression du code source d'un programme C lui-même

L'impression du code source d'un programme C lui-même est différente du problème Quine. Ici, nous devons modifier n'importe quel programme C de manière à ce qu'il imprime l'intégralité du code source. 

Recommandé : veuillez essayer votre approche sur {va} d'abord avant de passer à la solution.

Approche

  1. Utilisez la macro prédéfinie __FILE__ pour obtenir l'emplacement du fichier.
  2. Ouvrez le fichier de code source en mode lecture et récupérez le pointeur de fichier fptr. Vérifiez si le fichier est ouvert avec succès ou non.
  3. Lisez tout le contenu du fichier en utilisant la boucle do-while et fgetc.
  4. Fermez le fichier à l'aide de la fonction fclose.

1. Méthode de macro FILE (nom du fichier d'impression)

Nous pouvons utiliser les concepts de gestion de fichiers pour imprimer le code source du programme en sortie. L'idée est d'afficher le contenu du même fichier dans lequel vous écrivez le code source. L'emplacement d'un fichier de programmation C est contenu dans une macro prédéfinie __FILE__.

Vous trouverez ci-dessous le programme C pour utiliser __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 sortie du programme ci-dessus est l'emplacement de ce fichier C. 



Résultat du programme 1' title=

Mise en œuvre

Le programme suivant affiche le contenu de ce fichier C particulier (code source) car __FILE__ contient l'emplacement de ce fichier C dans une chaîne. 

2. Afficher le programme

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

Sortir:

Créer un quiz