我需要知道标准输入中是否有任何输入符号。
但我不知道如何检查这种情况。
据我了解,我不能使用 Console.Read() 因为它实际上会读取下一个输入符号。
我认为您可以Console.In
用作System.IO.TextReader
并使用Peek()
-Method:
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..
}
if(Console.In.Peek()!=-1) //solves the problem
如果您想检查控制台的标准输入中是否有任何数据等待而不实际读取它,我建议您使用以下内容:
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
}
}
我希望我没有理解你的问题,你可以尝试这样的事情:
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
}