ホームページ > バックエンド開発 > C++ > Console.Clear() は単一行を消去できますか?できない場合はどうすればよいですか?

Console.Clear() は単一行を消去できますか?できない場合はどうすればよいですか?

Susan Sarandon
リリース: 2024-12-30 10:52:12
オリジナル
256 人が閲覧しました

Can Console.Clear() Erase a Single Line, and If Not, How Can I Do It?

Console.Clear を使用してコンソール内の 1 行を消去できますか?

Console.Clear() の機能を調べながら、開発者は、他のコンテンツをそのままにして、コンソール内の特定の行を選択的に消去する必要があることに遭遇しました。この質問では、コンソール上のコンテンツの消去のニュアンスを、参照と値の両方で詳しく調べます。

コンソールのクリアについて

Console.Clear() は通常、コンテンツ全体をクリアします。コンソール画面の。ただし、特定のシナリオでは、単一行のみを消去することが望ましい場合があります。これは、質問を消去して回答のみを表示する必要がある、一連の質問と回答を扱う場合に特に関係します。

値の種類の制限

渡すとき値ごとに値を指定すると、元の変数はその後の変更の影響を受けません。これにより、value によって返された値を含む行を選択的に消去することが困難になります。そのため、main 関数は、これらの値を消去して再度出力するためにこれらの値にアクセスすることはできません。

代替: カーソル位置の制御

単一行を選択的に消去するには、次のようにします。 Console.SetCursorPosition 関数を利用できます。この関数を使用すると、プログラマはカーソルを指定された任意の行番号に移動できます。 Console.SetCursorPosition と特定の行をクリアするカスタム関数を組み合わせることで、他の画面内容に影響を与えることなく、選択した行を消去することが可能になります。

カスタム行クリア関数

次のコード スニペットは、単一のデータを消去する必要性に対処する ClearCurrentConsoleLine() という名前のカスタム関数を示しています。 line:

public static void ClearCurrentConsoleLine()
{
    int currentLineCursor = Console.CursorTop;
    Console.SetCursorPosition(0, Console.CursorTop - 1);
    Console.Write(new string(' ', Console.WindowWidth)); 
    Console.SetCursorPosition(0, currentLineCursor);
}
ログイン後にコピー

使用例

ClearCurrentConsoleLine() 関数の使用例を次のコードに示します。

Console.WriteLine("Test");
Console.SetCursorPosition(0, Console.CursorTop - 1);
ClearCurrentConsoleLine();
ログイン後にコピー

Inこの例では、文字列「Test」がコンソールに書き込まれ、カーソルが 1 行上に移動します。 ClearCurrentConsoleLine() 関数が呼び出され、テスト出力を含む行が消去され、コンソールに空の行が残ります。

追加リソース:

  • [コンソール] .SetCursorPositionメソッド](https://docs.microsoft.com/en-us/dotnet/api/system.console.setcursorposition?view=netcore-3.1)

以上がConsole.Clear() は単一行を消去できますか?できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート