ReadLine()方法不接受字符串,并且在不读取输出的字符串的情况下执行程序。
using System;
namespace ReadReadLineMethod
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
//using read method
Console.WriteLine("Write a character: ");
char a=(char)Console.Read();
Console.WriteLine(a);
//using readline method
Console.WriteLine("Enter a line: ");
string s=Console.ReadLine();
Console.WriteLine(s);
}
}
}
答案 0 :(得分:6)
您的问题是由Read调用引起的,该调用只读取标准输入流中的一个字符,但是当您键入字母'a'后跟Enter键时,您将在输入中插入3个字符:字母' a',回车和换行。这两个最后一个字符不会被Read从输入流中删除,并且在您调用ReadLine时仍然存在。当然,这会导致ReadLine立即退出而无需返回任何内容。
您可以将对Read的调用更改为另一个ReadLine以删除enter键插入的CR / LF,如果需要单个char,则可以从返回的字符串中提取它
Console.WriteLine("Write a character: ");
string input = Console.ReadLine();
// Decide what default you want
char a = input.Length > 0 ? input[0] : ' ';
Console.WriteLine(a);