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(“%s”, __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");
Start Step 1-> In function int main(void) Declare a character c Open a FILE “file” “__FILE__” in read mode Loop do-while c != End Of File Set c = fgetc(file) putchar(c) Close the file “file” Stop
#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; }
#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!