初めてQuine書いてみた
難しい。あと、全然スマートじゃないような。そして改めてid:rofiたんすごいと思った。*1
#include <iostream> #include <string> int main() { char c = 44, d = 34; std::string s[] = { "#include <iostream>", "#include <string>", "int main() {", "char c = 44, d = 34;", "std::string s[] = {", "for(size_t i = 0; i < 5; ++i) { std::cout << s[i] << std::endl; }", "for(size_t i = 0; i < sizeof(s) / sizeof(s[0]) - 1; ++i) { std::cout << d << s[i] << d << c << std::endl; }", "std::cout << d << s[sizeof(s)/sizeof(s[0])-1] << d << std::endl;", "std::cout << s[sizeof(s)/sizeof(s[0])-1] << std::endl;", "for(size_t i = 5; i < sizeof(s) / sizeof(s[0]) - 1; ++i) { std::cout << s[i] << std::endl; }", "}", "};" }; for(size_t i = 0; i < 5; ++i) { std::cout << s[i] << std::endl; } for(size_t i = 0; i < sizeof(s) / sizeof(s[0]) - 1; ++i) { std::cout << d << s[i] << d << c << std::endl; } std::cout << d << s[sizeof(s)/sizeof(s[0])-1] << d << std::endl; std::cout << s[sizeof(s)/sizeof(s[0])-1] << std::endl; for(size_t i = 5; i < sizeof(s) / sizeof(s[0]) - 1; ++i) { std::cout << s[i] << std::endl; } }
*1:某新年のあれ参照