Как написать код, чтобы показать себя (печатать код на консоль), используя стандартный C++, только без какой-либо внешней библиотеки?Как я могу написать код, чтобы показать себя
ответ
Тада: http://en.wikipedia.org/wiki/Quine_(computing)
На чуть более прагматичной ноте, почти никто не делает. Это бессмысленно. Если вы хотите распространять исходный код, просто поместите его в архив или zip-файл, например, здоровый человек.
Это интересный опыт обучения. –
Сделано гораздо менее интересно, попросив кого-то другого сделать это за вас. –
В принципе, трюк заключается в том, чтобы написать свой код, чтобы он содержал строку. Внутри этой строки есть тот же самый код_, кроме того, где содержимое строки будет (внутри себя), у вас есть символ магического ключа (или два), который больше нигде в коде. Затем вы выводите строку на консоль до тех пор, пока этот ключевой символ не отобразит всю строку, а затем отобразит строку _after_ ключевого символа. –
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
string line;
ifstream sourceFile(__FILE__);
if (sourceFile.is_open())
{
while (sourceFile.good())
{
getline (sourceFile,line);
cout << line << endl;
}
sourceFile.close();
}
else cout << "Unable to open source file";
return 0;
}
Вызов 'good()', 'eof()', & c как условие цикла почти всегда приводит к программам bugger. Подсказка: почему ваша программа печатает лишнюю пустую строку? –
См. [Здесь] (http://ideone.com/VvnpW) для альтернативной реализации. –
да, это имеет смысл. –
http://en.wikipedia.org/wiki/Quine_%28computing%29 –
Quines в основном сделано как физические упражнения. Если кто-то говорит вам, как это сделать, тогда это становится бессмысленным. – stefaanv