ようやく読み終えたK&Rそして、最初の数ページで、バックスペース エスケープ文字があることを知りました\b
。
それで、テストしてみると、非常に奇妙な動作がいくつかありました。
#include <stdio.h>
main ()
{
printf("hello worl\b\bd\n");
}
出力は
hello wodl
誰かこれを説明できますか?
ベストアンサー1
結果は使用している端末やコンソールプログラムの種類によって異なりますが、ほとんどの場合\b
、非破壊的バックスペース。カーソルを後方に移動しますが、カーソルにある内容は消去されません。
部分についてはhello worl
、コードは次のように出力します
こんにちは世界 ^
...(^
カーソルの位置を示します)次に、\b
カーソルを2つ後ろへ移動する2つの文字を出力します。それなし消去(端末上で):
こんにちは世界 ^
カーソルが の上にあることに注意してくださいr
。次に が出力されd
、 が上書きされr
て次のようになります。
こんにちは、wodl ^
最後に、 を出力します。\n
これは非破壊的な改行です (これも、ほとんどの端末では、おそらくあなたの端末も含め)。そのため、 はl
変更されずに、カーソルは次の行の先頭に移動されます。