我刚开始学习C#。当涉及到从控制台读取输入时,我知道有Console.ReadLine()
可以读取直到行尾的输入,但我想要读取直到行尾或空格的输入,就像在c++中的std::cin
一样。输入a b c
应该能够被读取为:
a b c
或者
a b
c
或者
a
b c
或者
a
b
c
结果应该是相同的。
我刚开始学习C#。当涉及到从控制台读取输入时,我知道有Console.ReadLine()
可以读取直到行尾的输入,但我想要读取直到行尾或空格的输入,就像在c++中的std::cin
一样。输入a b c
应该能够被读取为:
a b c
或者
a b
c
或者
a
b c
或者
a
b
c
结果应该是相同的。
Console
类支持两种读取方法。
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();
}
Console.Read()
循环读取输入,直到找到退出字符为止。 - maccettura