2011-10-28 50 views
0

如何在不使用任何外部庫的情況下使用標準C++編寫代碼以自行顯示代碼(將代碼打印到控制檯)?如何編寫代碼以顯示自己

+2

http://en.wikipedia.org/wiki/Quine_%28computing%29 –

+0

昆士蘭犬大多是作爲鍛鍊來完成的。如果有人告訴你如何去做,那麼它就變得毫無意義。 – stefaanv

回答

4

田田:http://en.wikipedia.org/wiki/Quine_(computing)

在一個稍微更加務實的筆記,幾乎沒有人做到這一點。沒有用。如果您想分發源代碼,只需將其放入一個tarball或zip文件,就像一個理智的人。

+0

這是一個有趣的學習經歷。 –

+4

要求別人爲你做這件事情就不那麼有趣了。 –

+0

基本上,訣竅是寫你的代碼,以便它包含一個字符串。在該字符串內部是_exact相同的code_,除了字符串的內容(在其內部)之外,您有一些魔術鍵字符(或兩個),它們在代碼中沒有其他地方。然後將該字符串顯示到控制檯,直到該關鍵字符,顯示整個字符串,然後顯示關鍵字符後的字符串_after_。 –

1
#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; 
} 
+0

調用'good()','eof()',&c作爲循環條件幾乎總是導致bugger程序。提示:爲什麼你的程序打印一個額外的空行? –

+2

請參閱[此處](http://ideone.com/VvnpW)以獲取其他實現。 –

+0

是的,它更有意義。 –