標準入力に入力記号があるかどうかを知る必要があります。
しかし、そのような状態を確認する方法がわかりません。
私が理解しているように、次の入力シンボルを実際に読み取るため、 Console.Read() は使用できません。
Console.In
としてSystem.IO.TextReader
使用し、Peek()
-Methodを使用できると思います。
if(Console.In.Peek() == "I don't know what it will be...")
{ /* Do something */ }
if(Console.In.Peek()!=-1) //solves the problem
console.writeline();
var a = console.readline();
if(a == null)
{
do something..
}
else
{
do something..
}
実際に読み取らずにコンソールの標準入力で待機しているデータがあるかどうかを確認したい場合は、次のようなものを使用することをお勧めします。
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
}