#include<stdio.h>
int main()
{
int a;
printf("%..geeksforgeeks..%");
getchar();
return 0;
}
出力:%.0.geeksforgeeks..%
誰でも理由を説明できますか???
#include<stdio.h>
int main()
{
int a;
printf("%..geeksforgeeks..%");
getchar();
return 0;
}
出力:%.0.geeksforgeeks..%
誰でも理由を説明できますか???
なぜこの正確な出力が得られるのかはわかりませんが、問題はメタ文字としてprintf
使用されるため、文字通りのパーセント記号を出力したい場合は、それを2倍にする必要があります.%
printf("%%..geeksforgeeks..%%\n")
printf
または、リテラル文字列を出力するために使用しないでください:
fputs("%..geeksforgeeks..%\n", stdout);
printf
技術的に言えば、追加の引数 (フォーマットされるアイテム) の数よりも多くの「生きている」 (二重化されていない) % 記号が文字列に含まれていると、未定義の動作がトリガーされます。コンピューター全体のクラッシュを含む、このような驚くべき動作。