前提・実現したいこと
現在『新・明解C言語中級編』こちらの書籍でC言語の学習をしています。
書籍で扱う以下の拡張表記をeclipseで表現したいです。
・\b 後退
・\r 復帰
・\a 警報
書籍では、printfの中に書くと、使える想定となっています。
たとえば、\bの場合は以下の通りです。
発生している問題・エラーメッセージ
しかし、実行した結果は以下の通りでした。
文字を消す代わりに、スペースが出来てしまいます。
ABCDEFG
該当のソースコード
C言語
1 2#include <time.h> 3#include <stdio.h> 4 5int sleep(unsigned long x) 6{ 7 clock_t c1 = clock(), c2; 8 9 do { 10 if ((c2 = clock()) == (clock_t)-1) /* エラー */ 11 return 0; 12 } while (1000.0 * (c2 - c1) / CLOCKS_PER_SEC < x); 13 return 1; 14} 15 16int main(void) 17{ 18 int i; 19 printf("ABCDEFG"); 20 21 for(i=0; i<7; i++){ 22 sleep(1000); 23 printf("\b \b"); 24 fflush(stdout); 25 } 26 return 0; 27} 28
試したこと
書籍のコードをそのまま書いただけなのに
その通り動かないのは環境要因なのかと思い、
検索してみましたが、有用な情報が見つかりませんでした。
どなたか分かる方に解決方法をご教示願います。
環境要因です。
\b はバックスペース文字という文字にすぎず、それで後退するかどうかはターミナルに依存します。
書籍を最初から読んで環境を書籍に合わせてください。
環境について触れられていないのであれば、その書籍のその部分の周辺に解説があると思いますが、ないのであれば本を変えましょう。
動かないとはどうなるんでしょうか。ちと意味不明です。
エラーが出たなら、エラーメッセージを提示しましょう
エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
> ↑ 動かないとはどうなるんでしょうか。
説明してあるやん。質問読んでます?
https://teratail.com/questions/37323 これと同じ問題でしょう。