如何读取控制台输入直到空格或输入C#

如何读取控制台输入直到空格或输入C#,c#,console-application,C#,Console Application,我刚开始学C。当我从控制台读取输入时,我知道有“代码>控制台。Read Load())/Cux>读取输入直到行的结尾,但是我正在寻找读取输入直到行或空间的结尾,有点像C++中的“代码> STD::CIN < /代码>。输入ab c应能被读取为: a b c 或 或 或 结果应该是相同的。控制台类支持两种读取方法 Read()将读取单个字符 ReadLine()会将所有内容读取到行尾(例如,直到一个Environment.NewLine字符) 从上面的信息可以看出,您只是想通过多行读取所有内容,

我刚开始学C。当我从控制台读取输入时,我知道有“代码>控制台。Read Load())/Cux>读取输入直到行的结尾,但是我正在寻找读取输入直到行或空间的结尾,有点像C++中的“代码> STD::CIN < /代码>。输入
ab c
应能被读取为:

a b c


结果应该是相同的。

控制台类支持两种读取方法

Read()
将读取单个字符
ReadLine()
会将所有内容读取到行尾(例如,直到一个Environment.NewLine字符)

从上面的信息可以看出,您只是想通过多行读取所有内容,然后将其拆分为令牌。您可以通过抓取标准输入流并将其读取到“末尾”…也就是在接收到CTRL+Z时

using (var sr = new StreamReader(Console.OpenStandardInput(), Console.InputEncoding))
{
    var input = sr.ReadToEnd();

    var tokens = input.Replace(Environment.NewLine, " ").Split(" ");

    foreach (var t in tokens)
    {
        Console.WriteLine($"Token: \"{t}\"");
    }

    Console.Read();
}

你可以编写自己的函数,循环一个
控制台。Read()
直到找到退出字符。非常感谢这个答案,这就是我想要的。我们给它一个+1和一个检查,所以:-)我的声誉实际上不到15,所以+1不算在内,哈。不用担心:-)
a
b c
a
b
c
using (var sr = new StreamReader(Console.OpenStandardInput(), Console.InputEncoding))
{
    var input = sr.ReadToEnd();

    var tokens = input.Replace(Environment.NewLine, " ").Split(" ");

    foreach (var t in tokens)
    {
        Console.WriteLine($"Token: \"{t}\"");
    }

    Console.Read();
}