質問
次のプログラムが#の約10行を出力する状況を考えましょう
for(i=0;i<10;i++)
prinf("\n#");
5行目に戻ってその#を編集し、画面をクリアしたり、下の5行をクリアせずに色を変更したりする方法を教えてください。
試しました
window(5,0,20,20);
textcolor(GREEN);
cprintf("#");
しかし、それはそれを編集していませんが、元のものの側面に印刷しています。なぜですか?
他の方法で、既に印刷されているテキストの色を動的に変更する方法はありますか? 私を助けてください..私の環境はWindowsのターボCです
解決
window関数は通常、最初の2つの座標ピクセル、つまり、例(5,0)から次の2つの座標が指すピクセルまでのウィンドウを作成します。プログラムは動作するはずです
試してみるか、gotoxy()を使用してください
他のヒント
printfと別の出力ライブラリを混合しているように見えます-これは推奨されません。 Printfはキャラクター端末に送信されることを期待しますが、問題の出力ライブラリは、排他的アクセス権を持っていると誤って想定している可能性があります(誤動作する可能性があります)。
1つの関数に基づいて、conio.hを使用している可能性があります。ドキュメントは、こちらにあり、それぞれの目次が表示されています。利用可能な機能。そのインデックスから、関数を即座に見つけることができるはずです。
ウィンドウ関数は、カーソルがテキストを変更できる領域のみを設定するため、目的の処理を行いません。カーソルを移動しないため、他のライブラリ関数を使用する必要があります。
-1:
宿題の質問を投稿するためのヒント:
1)質問を正してください!記載されているとおり、投稿されたコードは実行されません。
for(i=0;i<10;i++)
prinf("#");
これは、行末文字がないため、1行に10個の#
文字を印刷します。元の説明では、「10行の印刷」について説明しています。
2)必要な詳細を入力してください:使用している環境:Windows? Linux?どのコンパイラ?これはウィンドウ環境またはテキストベースの環境ですか?
3)投稿前のSTFW。 「ANSIエスケープシーケンス」を探します。または「カーソルの配置」
多分-
cprintf("\b#");
'b'はバックスペース用です