私はthisサイトに自分自身を印刷するプログラムに出くわしました。つまり、プログラムコードを印刷します。それ自身を印刷するプログラムはどうですか?
#include <stdio.h>
char *program = "#include <stdio.h>%cchar *program = %c%s%c;%cint main()%c{%cprintf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c";
//what is this line doing, what is the use of %c and %s and what properties of %c and %s are being used here?
int main()
{
printf(program, 10, 34, program, 34, 10, 10, 10, 10, 10, 10);
//what is this print function doing, and how?
return 0;
}
そして、与えられた説明は次のとおりです:
プログラム・コードがある
ここでは二つの重要なトリックは、文字列が含まれていることができるように埋め込ま%sの 指定した文字列を使用しています には、特殊文字「 」を改行文字のように出力するための%c書式指定子を使用します。これは、出力 文字列には埋め込まれませんでした。
私はプログラムが動作しているか理解していませんでした。私は説明が必要な行、それがどのように働いているのか、そして何をしているのかを述べました。説明してください。
です。これは宿題かプログラマーの挑戦ですか? –
このようなものはありません。宿題の場合、私は宿題タグを使用していました。 – SpeedBirdNine
あなたのコメントはquineを破る:)また、インデントはquineで正しくありません。これは歴史的に根ざしたプログラマーの挑戦です – sehe