printf()関数の使い方(rn)


以前はデバッグになった時は、rと何の違いがあるのか分からず、差が少ないと思っていたのですが、今日使っている間に穴があいてしまいました.ここでまず理解したいのは、改行であり、カーソルが次の行に移動し、rはカーソルが本行の先頭に移動することである.
だから、時間を計るときは、こう書くべきです.
clock_t begin =clock();

//add your code

clock_t end=clock();
double process_time = double(end-begin) / CLOCKS_PER_SEC;
printf("process_time:%0.2f(ms)\r",process_time*1000 );

上のような書き方では、ブラシの現象は起こりません.
最後に、コンピュータが現れる前にテレタイプというものがあります(Teletype Model 33)の遊びは、1秒に10文字打つことができます.しかし、1行の改行を終えたとき、0.2秒を使うと、ちょうど2文字を打つことができます.この0.2秒の中で、また新しい文字が伝わってくると、この文字は失われます.そこで、開発者はこの問題を解決する方法を考えました.各行の後ろに終了を表す2つの文字.「リターン」という名前で、タイプライターに印刷ヘッドを左の境界に位置させるように伝えます.もう1つは「改行」と呼ばれ、タイプライターに紙を1行下に移動するように伝えます.これが「改行」と「折り返し」の由来で、英語の名前からも一二がうかがえる.その後、コンピュータが発明され、この2つの概念もコンピュータに一般化された.その时、メモリはとても高くて、一部の科学者は行の終わりに2つの文字を加えるのはもったいないと思って、1つ追加すればいいと思っています.すると、分岐が現れた.Unixシステムでは、各行の最後に「」、すなわち「」しかありません.Windowsシステムでは、各行の末尾が「」、「r」です.Macシステムでは、各行の末尾が「」です.1つの直接的な結果は、Unix/Macシステムの下のファイルがWindowsで開くと、すべての文字が1行になります.WindowsのファイルをUnix/Macで開くと、各行の末尾に^M記号が1つ増える可能性があります.