दिया गया कार्य लिखे गए C प्रोग्राम को स्वयं प्रिंट करना है।
हमें एक C प्रोग्राम लिखना होगा जो स्वयं को प्रिंट करेगा। इसलिए, हम C में फाइल सिस्टम का उपयोग करके उस फाइल की सामग्री को प्रिंट कर सकते हैं जिसमें हम कोड लिख रहे हैं, जैसे हम "code 1.c" फाइल में कोड लिख रहे हैं, इसलिए हम फाइल को रीड मोड में खोलते हैं और फाइल की सभी सामग्री पढ़ते हैं और परिणाम को आउटपुट स्क्रीन पर प्रिंट करते हैं।
लेकिन, फाइल को रीड मोड में खोलने से पहले, हमें उस फाइल का नाम पता होना चाहिए जिसमें हम कोड लिख रहे हैं। इसलिए, हम "__FILE__" का उपयोग कर सकते हैं जो एक मैक्रो है और डिफ़ॉल्ट रूप से वर्तमान फाइल का पथ लौटाता है।
मैक्रो "__FILE__" के लिए उदाहरण
#include <stdio.h>
int main() {
printf("%s", __FILE__);
}
उपरोक्त प्रोग्राम उस फाइल का स्रोत प्रिंट करेगा जिसमें कोड लिखा गया है।
मैक्रो __FILE__ एक स्ट्रिंग लौटाता है जिसमें वर्तमान प्रोग्राम का पथ होता है जिसमें यह मैक्रो उल्लिखित है।
इसलिए, जब हम इसे फाइल सिस्टम में मर्ज करते हैं ताकि वर्तमान फाइल को खोल सकें जिसमें कोड रीड मोड में है, तो हम ऐसा करते हैं -
fopen(__FILE__, "r");
एल्गोरिदम
Start
Step 1 -> int main(void) फंक्शन में
एक कैरेक्टर c घोषित करें
फाइल "file" "__FILE__" को रीड मोड में खोलें
do-while लूप c != End Of File
c = fgetc(file) सेट करें
putchar(c)
फाइल "file" बंद करें
Stop
उदाहरण
#include <stdio.h>
int main(void) {
// सोर्स कोड प्रिंट करने के लिए
char c;
// __FILE__ वर्तमान C प्रोग्राम फाइल का स्थान प्राप्त करता है
FILE *file = fopen(__FILE__, "r");
do {
// फाइल की सामग्री प्रिंट करना
c = fgetc(file);
putchar(c);
} while (c != EOF);
fclose(file);
return 0;
}
आउटपुट
#include <stdio.h>
int main(void) {
// सोर्स कोड प्रिंट करने के लिए
char c;
// __FILE__ वर्तमान C प्रोग्राम फाइल का स्थान प्राप्त करता है
FILE *file = fopen(__FILE__, "r");
do {
// फाइल की सामग्री प्रिंट करना
c = fgetc(file);
putchar(c);
} while (c != EOF);
fclose(file);
return 0;
}