【问题标题】:Wait for multiline console input to finish c#等待多行控制台输入完成 c#
【发布时间】:2020-07-08 01:34:08
【问题描述】:

我应该编写一个程序,其中用户输入一个迷宫,我的应用程序试图找到一种方法来通过它。迷宫的输入应该是这样的

#####
#...#
#...#
#####

我应该使用 Console.OpenStandardInput(),然后用户复制将迷宫粘贴到控制台中。但是,当我使用 Console.ReadLine() 等待用户复制粘贴迷宫时,它只读取第一行。我知道对于 Java,您只需制作一个新的 Scanner(System.in),但我该如何在 c# 中执行此操作?

编辑: 我的整个代码是

class Program
{
    static void Main(string[] args)
    {
        StreamReader sr = new StreamReader(Console.OpenStandardInput());
        for (int i = 0; i < 5; i++)
        {
            Console.Write((char)sr.Read());
        }
        Console.WriteLine("done");
        Console.ReadKey();
    }
}

当我复制粘贴时

AB

光盘

从记事本,输出变成

AB

AB

CD光标在这里

【问题讨论】:

  • 我的回答有问题吗?如果有,请告诉我。

标签: c# console console-application


【解决方案1】:

Console.ReadLine() 在每一行之后返回,所以你需要使用循环从控制台读取所有行,直到你得到 null

List<string> lines = new List<string>();
string line;
while ((line = Console.ReadLine()) != null)
{
    // Either you do here something with each line separately or
    lines.add(line);
}
// You do something with all of the lines here

【讨论】:

  • 谢谢,但我需要使用 Console.OpenStandardInput()
猜你喜欢
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2023-03-23
相关资源
最近更新 更多