Cを使用してターミナルでprintf出力に奇妙なパーセント記号を取得する



私はこの printf を持っています プログラムの最後のステートメント:


printf("%d", total_candies);

total_candies int です 、すべてが正しく機能することを期待していますが、実際の数値とともに、最後に奇妙なパーセント記号が表示されます.


なぜこれが起こっているのか誰か教えてもらえますか?


答え:


プログラムからの (null 以外の) 出力に末尾の改行が含まれていない場合、zsh は色を反転した % を追加します。 それを示し、プロンプトを出力する前に次の行に移動します。出力が終了したところでコマンド プロンプトを開始するだけなので、通常は bash の動作よりも便利です。