试图使命令窗口不消失
本文关键字:消失 窗口 命令 使命 | 更新日期: 2023-09-27 18:35:06
我对C#很陌生。所以请帮助我解决这个疑问。
当我运行此代码时,屏幕将暂停并等待输入。
namespace HelloWorld1
{
class Program
{
static void Main(string[] args)
{
//int x=2;
Console.WriteLine("Hello world! Enter an int.");
Console.Read();
/* x=Console.Read();
Console.WriteLine("you've entered: " + x + " .");
Console.ReadLine();
*/
}
}
}
但是当我将代码更改为下面时,屏幕不再暂停...
:namespace HelloWorld1
{
class Program
{
static void Main(string[] args)
{
int x=2;
Console.WriteLine("Hello world! Enter an int.");
//Console.Read();
x=Console.Read();
Console.WriteLine("you've entered: " + x + " .");
Console.Read();
}
}
}
为什么会这样?
编辑:
最新代码(仍然不暂停屏幕):
namespace HelloWorld1
{
class Program
{
static void Main(string[] args)
{
int x=2;
Console.WriteLine("Hello world! Enter an int.");
x=Console.Read();
Console.WriteLine("you've entered: " + x + " .");
Console.ReadLine();
}
}
}
使用 Read() 方法的目的是什么?文档:"返回输入流中的下一个字符,如果当前没有更多要读取的字符,则返回负字符 (-1)。...对 Read 方法的后续调用一次检索一个字符的输入。检索最后一个字符后,读取会再次阻止其返回,并且循环重复。
请改用 Readline()。
调试"菜单中的"启动(不调试)启动"模式(Ctrl+F5)
运行控制台应用程序。
如果使用普通的旧 F5 运行控制台应用程序,则控制台窗口将在屏幕上闪烁并消失,除非您向代码中添加 Console.ReadLine;使用 Control_F5,控制台窗口将保持在屏幕上,直到您按 Return 键。
来源:Visual Studio 提示:从调试开始和从调试开始之间的区别
Console.Read()
基本上读取一个字符,因此如果您在控制台上并按下某个键,控制台将关闭,同时Console.Readline()
将读取整个字符串并从输入流中返回下一行字符,如果没有更多行可用,则为 null。在代码的第一部分中,控制台等待按下一个键,这就是窗口悬而未决的原因。为了实现您的目标,我建议Console.ReadKey()
方法,该方法获取用户按下的下一个字符或功能键。按下的键将显示在控制台窗口中,如此处所述。
使用 Read
函数时,它只返回下一个字符,这会在缓冲区中保留换行符(从按 Enter 开始)。然后,当您调用 ReadLine
时,它会自动读取左边的换行符,然后应用程序关闭。使用 ReadLine
获取您的 int,并将其转换:
int x = 2;
Console.WriteLine("Hello world! Enter an int.");
x = int.Parse(Console.ReadLine()); //Change this line right here
Console.WriteLine("you've entered: " + x + " .");
Console.ReadLine();