我正在从命令行读取字符串。但是我的程序无法检测到流的结尾。我该如何重建它,或者有一种方法可以将EndOfStream显式设置为true?
List<String> str = new List<String>();
using (StreamReader reader = new StreamReader(Console.OpenStandardInput()))
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
if (line != string.Empty)
{
str.Add(line);
}
}
答案 0 :(得分:1)
那是设计无法解决的。只要程序处于活动状态,stdin / stdout控制台流就会打开。在这种情况下,EndOfStream
会在关闭应用程序之前执行。
一个很好的解决方案是
using System;
public class Example
{
public static void Main()
{
string line;
do {
line = Console.ReadLine();
if (line != null)
Console.WriteLine("Now I have detected the end of stream.... " + line);
} while (line != null);
}
}