📜  打印C程序本身的源代码

📅  最后修改于: 2021-05-25 18:45:48             🧑  作者: Mango

如何打印C程序本身的源代码?请注意,这不同于Quine问题。在这里,我们需要以打印整个源代码的方式修改任何C程序。

说明
我们可以使用文件处理的概念将程序的源代码打印为输出。想法是:显示与您编写源代码相同的文件中的内容。

C编程文件的位置包含在预定义的宏__FILE__中。例如:

#include 
int main()
{
   // Prints location of C this C code.
   printf("%s",__FILE__);
}

上面程序的输出是此C文件的位置。
下面的程序显示此特定C文件(源代码)的内容,因为__FILE__以字符串包含此C文件的位置。

// A C program that prints its source code.
#include 
   
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;
}

输出

// A C program that prints its source code.
#include 
 
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;
}

注意:上面的程序可能无法在线编译,因为fopen可能已被阻止。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。