如何打印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基础课程》。