1

私はコンソールアプリケーションを書いていますが、行のシフトを使用して現在の行に書き込む方法を知る必要があります。これを次の例で説明しようと思います。カーソル位置とともに番号と内容をコンソール行に表示します。

  1. こんにちは!
  2. これは私のコマンドシェルです。
  3. 何か書いてください:_

コンソールテキスト「lalala」を書き込むためのメソッドを呼び出すと、次のことがわかります。

  1. こんにちは!
  2. これは私のコマンドシェルです。
  3. ラララ
  4. 何か書いてください:_

Console.WriteLineメソッドを使用すると、次のように表示されます。

  1. こんにちは!
  2. これは私のコマンドシェルです。
  3. 何か書いてください:lalala
  4. _

この機能を実現するのを手伝ってください。

4

7 に答える 7

3

コードを提供しなかったので、Console.WriteLine("Please write something");テキストを印刷するために使用していると思います。これにより、印刷するテキストに \n が追加されるため、入力を取得して自分で \n を処理するために をConsole.Write("Please write something")使用する必要があります。Console.ReadLine();

于 2012-01-24T10:24:59.140 に答える
3

Console.SetCursorPosition は、探している毒です。http://msdn.microsoft.com/en-us/library/system.console.setcursorposition.aspxの詳細

于 2012-01-24T10:25:19.997 に答える
2
Console.WriteLine("1.Hello!");
Console.WriteLine("2.This is my command shell.");
Console.WriteLine("3.lalala");
Console.Write("4.Please write something:");
Console.Read();
于 2012-01-24T10:23:44.897 に答える
1

このようなことを試してください

Console.Write("Hello\nThis is My Command Shell\nlalala\nPlease Enter Something:___");

もちろん、それらすべてが同時に表示されることになりますが、それがうまくいけば、これは機能します

このようになります

コンソール アプリケーション

于 2012-02-11T17:35:17.220 に答える
1

私があなたの質問を正しく理解していれば、使用する必要があると思います

Console.Write("text"); 

これは、カーソルが現在オンになっているのと同じ行に書き込みます。

それよりも:

Console.WriteLine("text");

これにより、呼び出されるたびにコンソールに新しい行が作成されます。

于 2012-01-24T10:29:40.820 に答える
1

上記のシナリオのコードを見つけてください。

private static void ReadAndWriteToConsole()
    {
        var mystrings = new List<string>();

        mystrings.Add("Hello!");
        mystrings.Add("This is my command shell.");

        var input = WriteToConsole(mystrings);
        while (input.ToLower() != "exit")
        {
            mystrings.Add(input);
            Console.Clear();
            input = WriteToConsole(mystrings);
        }
    }

    private static string WriteToConsole(IEnumerable<string> variables )
    {
        foreach (var str in variables)
        {
            Console.WriteLine(str);
        }
        Console.Write("Please write something:");
        return Console.ReadLine();
    }

それが役立つことを願っています。

注: 各文字列の番号が必要な場合は、foreach の代わりに for ループを使用し、console.writeline で使用されている変数を出力するだけです。

于 2012-01-24T10:50:10.480 に答える
0

これは古い質問だと思いますが、私はこのようなものを検索しており、コーディング方法は次のとおりです。

Console.WriteLine("Hello!");
Console.WriteLine("This is my command shell.");
string text = "";
string toWrite = "Please write something: ";
while (text != "quit")
{
    Console.Write(toWrite);
    text = Console.ReadLine();
    Console.SetCursorPosition(0, Console.CursorTop - 1);
    Console.WriteLine(text.PadRight(text.Length + toWrite.Length));
}

Console.SetCursorPosition は、カーソルを書き込んだ行に戻し、テキストとテキストの文字数に相当するパディングで書き込んだ内容を上書きします。

于 2014-12-12T14:04:16.320 に答える