Kev*_*vin 0 c++ runtime dynamic quine
我在质疑我对Accelerated C++的最后一个练习的解决方案:
写一个自我复制的程序.这样的程序是没有输入的程序,并且在运行时,在标准输出流上写入其自己的源文本的副本.
我的解决方案
using std::string;
using std::cout;
using std::endl;
using std::ifstream;
using std::getline;
void selfReproduce16_1()
{
ifstream thisFile("C:\\Users\\Kevin\\Documents\\NetBeansProjects\\Accelerated_C++_Exercises\\Chapter_16.cpp", ifstream::in);
string curLine;
bool foundHeader = false;
while(getline(thisFile, curLine))
{
if(!curLine.compare("void selfReproduce16_1()") || foundHeader)
{
foundHeader = true;
cout << curLine << endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这仅打印出解决方案的源文本(此功能).这是他们想到的解决方案吗?
我想要一个动态解决方案,不需要硬编码源文件的位置.但是,我不知道在运行时自动获取源文件位置的方法.
与此相关的另一点是包含"包含"文件,并且(当遇到函数调用时),自动获取存储函数的源文件的位置.对我来说,这将是一个真正的"自我复制" "节目.
这在C++中是否可行?如果是这样,怎么样?
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |