zoukankan      html  css  js  c++  java
  • 打印自身源代码的程序

    无意当中看到了这样一个问题:

    任意选定一个语言写一个打印自身源代码的程序,这个程序不允许读取或者写其他文件的数据,程序必须是完全独立的。

    很有趣吧?我正在学习C语言,这个问题是我在查找其他资料时看到的,这激发了我的兴趣,我躺在床上想了很久,没有一点头绪,额,最后抱着认为不大可能实现的想法睡着了······

    回到正题,我在网上搜索了有关资料以后,知道了如何去写出这样的一个程序,原理是定义一个关于源代码自身的串string,然后加入把string改写成程序自身的算法编码,最后输出string。由于c语言中有个Printf(),实现这个代码就十分的方便,由于我还不会其他语言,所以只把c的代码贴下:

    #include <stdio.h>
    int main()
    {
    char *s = "#include <stdio.h>%cint main(){char *s = %c%s%c; printf( s, 10, 34, s, 34 ); return 0; }";
    printf( s, 10, 34, s, 34 ); return 0;
    }  

    需要注意的一点是,这个代码应该有指明打印的位置与打印多少。

  • 相关阅读:
    java 编译
    MapReduce
    搜索引擎中index、attribute和summary概念
    正排索引和倒排索引简单介绍
    SVN 使用
    PlantUML + Chrome 联合使用
    vim 多标签和多窗口
    关于数据库不适合docker的原因(摘抄)
    跨域
    is_valid校验机制
  • 原文地址:https://www.cnblogs.com/Sherlock-J/p/12926079.html
Copyright © 2011-2022 走看看