如何检查标准输入是否为空?

如何检查标准输入是否为空?

问题描述:

我需要知道标准输入中是否有任何输入符号。如何检查标准输入是否为空?

但我不知道如何检查这种情况。

据我所知,我不能使用Console.Read(),因为它实际上会读取下一个输入符号。

+2

你的意思是说'标准输入'? – 2013-02-11 07:14:59

+1

你究竟想达到什么目的?你是否试图限制输入到一系列有效的字符? – 2013-02-11 07:15:05

+0

你想检查用户是否提供了输入? – 2013-02-11 07:16:35

我想你可以使用Console.InSystem.IO.TextReader和使用Peek() - 方法:

if(Console.In.Peek() == "I don't know what it will be...") 
{ /* Do something */ } 

console.writeline(); 
var a = console.readline(); 
if(a == null) 
{ 
do something.. 
} 
else 
{ 
do something.. 
} 

我希望我undestood你的问题,你可以尝试这样的事:

var userInput = Console.ReadLine(); 
if (string.IsNullOrEmpty(userInput)) 
{ 
// do stuff here 
} 

也许这将帮助:如果您想查询什么类型的输入

string s = Console.ReadLine(); 
    if (s.Contains('@') Or s.Contains('!')) // you can add other symobols as need 
    { 
    //do your work 

    } 

您如果您的符号指的是“<,”,?,/,@,#,$,%,^,&,等等......” 这些链接可以帮助您Validation of input fieldsthis one

请包围着您的问题妥善也很难明白你问什么

如果你想看看是否有任何数据上的控制台的标准输入等待而不实际阅读它,我建议你去是这样的:

using (var sr = new StreamReader(Console.OpenStandardInput())) 
{ 
    //check if there are any characters on the input stream 
    if(!sr.EndOfStream) 
    { 
     //do whatever You want to do when the stream is not empty 
    } 
    else 
    { 
     //do whatever You want to do when the stream is empty 
    } 
} 

if(Console.In.Peek()!=-1) //solves the problem