Maison  >  Article  >  développement back-end  >  Imprimer le code source d'un programme C lui-même

Imprimer le code source d'un programme C lui-même

WBOY
WBOYavant
2023-08-29 17:05:07964parcourir

Imprimer le code source dun programme C lui-même

La tâche confiée est d'imprimer le programme C écrit lui-même.

Nous devons écrire un programme C qui s'imprimera tout seul. Nous pouvons donc utiliser le système de fichiers en C pour imprimer le contenu du fichier dans lequel nous écrivons le code, tout comme nous écrivons du code dans le fichier "code 1.c", nous ouvrons donc le fichier en mode lecture et lisons tout le fichier. contenu et imprimer les résultats sur l’écran de sortie.

Cependant, avant d'ouvrir un fichier en mode lecture, nous devons connaître le nom du fichier pour lequel nous écrivons le code. Par conséquent, nous pouvons utiliser la macro "__FILE__", qui renvoie par défaut le chemin du fichier actuel.

Exemple de macro "__FILE__"

#include<stdio.h>
int main() {
   printf(&ldquo;%s&rdquo;, __FILE__);
}

Le programme ci-dessus imprimera le code source du fichier où se trouve le code

La macro __FILE__ renvoie une chaîne contenant le chemin du programme actuel où il est mentionné.

Ainsi, lorsque nous le fusionnons dans le système de fichiers pour ouvrir le fichier actuel où le code est en mode lecture seule, nous pouvons faire quelque chose comme ceci -

fopen(__FILE__, "r");

Algorithme

Start
Step 1-> In function int main(void)
   Declare a character c
   Open a FILE &ldquo;file&rdquo; &ldquo;__FILE__&rdquo; in read mode
   Loop do-while c != End Of File
      Set c = fgetc(file)
      putchar(c)
   Close the file &ldquo;file&rdquo;
Stop

Exemple

#include <stdio.h>
int main(void) {
   // to print the source code
   char c;
   // __FILE__ gets the location
   // of the current C program file
   FILE *file = fopen(__FILE__, "r");
   do {
      //printing the contents
      //of the file
      c = fgetc(file);
      putchar(c);
   }
   while (c != EOF);
   fclose(file);
   return 0;
}

Sortie

#include <stdio.h>
int main(void) {
   // to print the source code
   char c;
   // __FILE__ gets the location
   // of the current C program file
   FILE *file = fopen(__FILE__, "r");
   do {
      //printing the contents
      //of the file
      c = fgetc(file);
      putchar(c);
   }
   while (c != EOF);
   fclose(file);
   return 0;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer