#c#
#c#
Вопрос:
Я новичок в этом форуме и работаю с Visual Studio как новичок. Мой учитель дал мне задание для выполнения в Visual Studio, но я понятия не имею, как его реализовать
Назначение состоит в том, чтобы принимать любой ввод и одновременно получать его вывод в зеркальной форме без необходимости нажимать Enter.
Например, если я пишу MESSI, то в то же время вывод должен быть ISSEM без нажатия ENTER.
Я старался изо всех сил, но, не нажимая ENTER, я не получил результатов. Вот мой код :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test11
{
class Class1
{
static void Main(string[] args)
{
string s;
Console.WriteLine("Enter characters:");
s = Console.ReadLine();
char[] arr = s.ToCharArray();
Array.Reverse(arr);
string r = new string (arr);
Console.WriteLine( s " " r);
}
}
}
Так что, пожалуйста, помогите мне решить эту проблему
С уважением, ОСКАР
Комментарии:
1. Переполнение стека — это не форум! meta.stackexchange.com/questions/92107 /…
Ответ №1:
Причина, по которой вам нужно нажимать enter в вашем коде, заключается в том, что вы используете Console.ReadLine
, который не возвращается, пока вы не нажмете enter . Вы захотите взглянуть на using Console.ReadKey
, который будет возвращать каждый ключ по мере его ввода и передавать true
для intercept
параметра, чтобы ввод не отображался на консоли. Посмотрите документы ConsoleKeyInfo
, чтобы вы знали, как интерпретировать ввод.
Поскольку это домашнее задание, я не хочу просто давать вам код, но вот некоторый псевдокод, чтобы вы начали. Если вы столкнетесь с конкретными проблемами, обратитесь за дополнительной помощью.
initialize input string // use a StringBuilder
loop forever
{
use Console.ReadKey(true) to get the next character
if (user pressed enter)
exit the loop // need some way to escape
if (user entered printable character) // ignore control characters
{
add character to input string
reverse string
print reversed string
move cursor to beginning of line // Console.Write('r') will work here
}
}
Если вы хотите разрешить клавише обратного пробела удалять символы, вы можете проверить наличие этого ключа, но вам также нужно будет стереть предыдущий вывод (просто напишите пробелы над ним) перед печатью новой строки, поскольку она будет короче.
У вас уже есть большая часть кода, так что, надеюсь, это укажет вам правильное направление, чтобы разобраться с остальным.