我的程序运行但是如果你编译它就会在放置输入时关闭

时间:2011-03-23 23:26:12

标签: windows visual-studio

这是代码 注意:我无法理解其他问题的答案 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Input_Program
{
    class Program
    {
        static void Main()
        {
            char Y = Console.ReadKey().KeyChar;

            Console.WriteLine("Welcome to my bool program!");
            Console.WriteLine("Input a NON capital y or n when told to.");

            if (Y == 'Y')
            {
                Console.WriteLine("Thank you,Please wait.....");
                Console.WriteLine("You input Y");
            }
        }
    }
}

如果(你可以编译它id欣赏它!)

4 个答案:

答案 0 :(得分:1)

只需在现有代码中添加一行就可以让它在退出之前等待另一次击键,这样您就可以充分查看输出:

if(Y == 'Y')
{
    Console.WriteLine("Thank you,Please wait.....");
    Console.WriteLine("You input Y");
}

Console.ReadLine();

另一种方法是在循环中运行代码,该循环检查Qexit或类似输入的内容,然后退出循环,从而根据需要退出应用程序 - 否则只需保留处理输入。

例如,您可以重新排列代码,看起来像这样:

Console.WriteLine("Input a NON capital y or n.");

char input;
while((input = Console.ReadKey().KeyChar) != 'n')
{
    if(input == 'y')
    {
        Console.WriteLine("You entered y");
    }
}
Console.WriteLine("You entered 'n'");
Console.WriteLine("Press any key to exit..."); 
Console.ReadKey();

另一个答案表明,通过命令行可以选择;虽然这是可能的,但如果不必要的话,必须在IDE之外执行任何操作,甚至在IDE中执行任何额外操作,这将很快变得乏味 - 但是,如果它从不需要处理超过部署的控制台应用程序,您可以考虑使用此实践一个命令或可以处理批处理命令。

答案 1 :(得分:0)

您有2个选项

  • 从命令提示符运行exe。
  • 添加Console.Readline()作为Main()函数的最后一行。这将导致程序在方法的最后一行等待,直到您按Enter键。

答案 2 :(得分:0)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text;

namespace Input_Program { 

class Program { 

static void Main() {

   char Y = Console.ReadKey().KeyChar;


   Console.WriteLine("Welcome to my bool program!");
   Console.WriteLine("Input a NON capital y or n when told to.");




    if(Y == 'Y')
    {
        Console.WriteLine("Thank you,Please wait.....");
        Console.WriteLine("You input Y");
    }

    Console.Readline(); //This will wait for you tu press enter before finishing the program :P
}
}}

主功能完成后,关闭没有图形界面的程序,因此在这种情况下,您没有时间查看打印的内容。您也可以在命令提示符下运行它。

答案 3 :(得分:0)

在您提示之前,您已获得该密钥。

你要求非资本(小写)'y'或'n',但要比资本(大写)'Y'。

您不会在程序退出之前等待查看输出。添加:

Console.ReadLine();
正如Naraen所说,在Main()结束时