2

我需要知道标准输入中是否有任何输入符号。

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

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

4

7 回答 7

3

我认为您可以Console.In用作System.IO.TextReader并使用Peek()-Method:

if(Console.In.Peek() == "I don't know what it will be...")
{ /* Do something */ }
于 2013-02-11T07:32:37.930 回答
2
console.writeline();
var a = console.readline();
if(a == null)
{
do something..
}
else
{
do something..
}
于 2013-02-11T07:16:35.560 回答
2
if(Console.In.Peek()!=-1) //solves the problem
于 2013-02-11T07:54:45.953 回答
1

如果您想检查控制台的标准输入中是否有任何数据等待而不实际读取它,我建议您使用以下内容:

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
    }
}
于 2013-02-11T07:43:10.050 回答
0

我希望我没有理解你的问题,你可以尝试这样的事情:

var userInput = Console.ReadLine();
if (string.IsNullOrEmpty(userInput))
{
 // do stuff here
}
于 2013-02-11T07:18:18.567 回答
0

也许这会有所帮助:

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

   }
于 2013-02-11T07:19:41.593 回答
0

如果您想检查用户插入的输入类型,那么如果您的符号是指“<,>,?,/,@,#,$,%,^,&,etc... “ 这些链接可以帮助您验证输入字段这个

请正确地提出你的问题很难理解你在问什么

于 2013-02-11T07:24:55.687 回答