Использую для консоли следующий код (С#)
Console.Write("Код гугл ");
string google_map = Console.ReadLine();
Нужно ввести код карты Google, он достаточно длинный и не влазит(((
Очень долго искал ответ. Пожалуйста помогите
Ответ
Это, как оказалось, ограничение консоли
Попробуйте такой метод:
var bufsize = 320;
Stream stream = Console.OpenStandardInput(bufsize);
TextReader inReader = (stream == Stream.Null) ?
StreamReader.Null :
TextReader.Synchronized(
new StreamReader(stream, Console.InputEncoding, false, bufsize, true));
Console.SetIn(inReader);
Выставьте размер буфера сколько нужно.
Код честно подсмотрен ILSpy'ем в методе Console.In
Реальное ограничение — 254 символа: 256 байт размер буфера, плюс два байта резервируется под CRLF. Аналогично в случае ручной установки bufsize реальный размер будет на два байта меньше.
В реальности, сделать буфер меньше, чем 256, у меня не получилось.
Если вы захотите правильно обрабатывать символы других языков и выставите Console.InputEncoding = Encoding.Unicode;, не забывайте, что ваш буфер будет расходовать по два байта на символ. Если вы, например, установите размер буфера в 320, то это даст всего лишь 160 юникодных символов (и будет поднято автоматически до 256).
Комментариев нет:
Отправить комментарий