Моя программа работает, но если вы скомпилируете ее, она будет закрыта после ввода - PullRequest
0 голосов
/ 24 марта 2011

Вот код Примечание: я не мог понять ответы на другие вопросы Код:

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");
            }
        }
    }
}

Если (Вы можете скомпилировать, я это ценю!)

Ответы [ 4 ]

1 голос
/ 24 марта 2011

Простое добавление одной строки к существующему коду заставит его ждать другого нажатия клавиши перед выходом, что позволит вам в лучшем случае увидеть ваш вывод:

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

Console.ReadLine();

Альтернативой является запуск вашего кода в цикле, который проверяет Q, или exit, или что-то подобное в качестве ввода, и выход из цикла и, следовательно, выход из приложения по желанию - в противном случае просто продолжайте обрабатывать ввод.

Например, вы можете изменить код так, чтобы он выглядел примерно так:

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, если в этом нет необходимости - однако вы можете использовать эту практику для развернутых консольных приложений, если ей никогда не требуется обрабатывать больше, чем одна команда или может обрабатывать пакетные команды.

0 голосов
/ 24 марта 2011

Вы получаете ключ еще до того, как запросите его.

Вы запрашиваете не заглавные буквы (строчные буквы) y или n, но сравниваете их с заглавными буквами буквы Y.

Вы не ждете, чтобы увидеть вывод до выхода из программы. Добавить:

Console.ReadLine();

в конце Main (), как сказал Нараен.

0 голосов
/ 24 марта 2011
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
}
}}

Программы, не имеющие графического интерфейса, закрываются, когда основная функция завершена, поэтому в этом случае у вас нет времени, чтобы посмотреть, что напечатано.Вы также можете запустить его в командной строке.

0 голосов
/ 24 марта 2011

У вас есть 2 варианта

  • Запуск exe из командной строки.
  • Добавить Console.Readline () в качестве последней строки функции Main (). Это заставит вашу программу ждать в последней строке метода, пока вы не нажмете Enter.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...