控制台在 Console.Read() 之后终止,即使最后有 Console.ReadLine()
Console terminates after Console.Read(), even with Console.ReadLine() at the end
以下代码询问您的名字和姓氏。
class Program
{
static void Main(string[] args)
{
Console.Write("Enter your name: ");
string s = Console.ReadLine();
Console.WriteLine("Your name: " + s);
Console.Write("Enter your surname: ");
int r = Console.Read();
Console.WriteLine("Your surname: " + r);
Console.ReadLine();
}
}
输入姓名后,程序会成功显示您的输入。但是,输入姓氏后,程序立即停止。根据我的理解,Console.Read() 应该 return 我输入的字符串的第一个字符的 int 值(ASCII 码?)。
为什么程序在 Console.Read() 之后立即终止? Console.ReadLine() 不应该确保程序保持打开状态吗?我正在使用 Visual Studio 2012.
根据控制台应用程序的方式 运行,它将执行所有代码行,然后 'return'。一旦完成,这将关闭程序,因为它已经完成了它需要做的所有意图和目的。它不会在完成后坐在那里打开。
如果您希望它保持 window 打开状态,请在末尾写入 Console.Readline()
它会保持打开状态,直到完成一些输入。我记得刚开始的时候遇到过这个问题,这不是程序意外关闭的问题,而是你想在关闭前在控制台中看到结果。
当您让控制台输入您的姓氏时,您要求的是一个字符。
Console.Write("Enter your surname: ");
int r = Console.Read();
这肯定应该是一个 ReadLine,然后是另一个 ReadLine,然后退出。您可能正在输入第一个字符(进入 Read),然后输入后续字符,然后按回车键接受姓氏,但实际上您在将退出的 ReadLine 上。所以:
class Program
{
static void Main(string[] args)
{
Console.Write("Enter your name: ");
string s = Console.ReadLine();
Console.WriteLine("Your name: " + s);
Console.Write("Enter your surname: ");
// change here
string surname = Console.ReadLine();
Console.WriteLine("Your surname: " + surname);
Console.ReadLine();
}
}
我的程序在 int r = Console.Read() 后没有终止。
以下代码询问您的名字和姓氏。
class Program
{
static void Main(string[] args)
{
Console.Write("Enter your name: ");
string s = Console.ReadLine();
Console.WriteLine("Your name: " + s);
Console.Write("Enter your surname: ");
int r = Console.Read();
Console.WriteLine("Your surname: " + r);
Console.ReadLine();
}
}
输入姓名后,程序会成功显示您的输入。但是,输入姓氏后,程序立即停止。根据我的理解,Console.Read() 应该 return 我输入的字符串的第一个字符的 int 值(ASCII 码?)。
为什么程序在 Console.Read() 之后立即终止? Console.ReadLine() 不应该确保程序保持打开状态吗?我正在使用 Visual Studio 2012.
根据控制台应用程序的方式 运行,它将执行所有代码行,然后 'return'。一旦完成,这将关闭程序,因为它已经完成了它需要做的所有意图和目的。它不会在完成后坐在那里打开。
如果您希望它保持 window 打开状态,请在末尾写入 Console.Readline()
它会保持打开状态,直到完成一些输入。我记得刚开始的时候遇到过这个问题,这不是程序意外关闭的问题,而是你想在关闭前在控制台中看到结果。
当您让控制台输入您的姓氏时,您要求的是一个字符。
Console.Write("Enter your surname: ");
int r = Console.Read();
这肯定应该是一个 ReadLine,然后是另一个 ReadLine,然后退出。您可能正在输入第一个字符(进入 Read),然后输入后续字符,然后按回车键接受姓氏,但实际上您在将退出的 ReadLine 上。所以:
class Program
{
static void Main(string[] args)
{
Console.Write("Enter your name: ");
string s = Console.ReadLine();
Console.WriteLine("Your name: " + s);
Console.Write("Enter your surname: ");
// change here
string surname = Console.ReadLine();
Console.WriteLine("Your surname: " + surname);
Console.ReadLine();
}
}
我的程序在 int r = Console.Read() 后没有终止。