#c#
#c#
Вопрос:
Я хочу иметь возможность вставлять array
из integer
в качестве стандартного ввода, который может иметь длину 1000000. Я пытаюсь сделать это, используя этот код, но размер array
будет только 254, (я прочитал из статьи, которая консоль.Строка чтения занимает всего 254 символа).
Примечание: каждый символ array
находится между 1 to 6
и первая строка кода numThrows
представляет length
собой массив.
int numThrows = Convert.ToInt32(Console.ReadLine()); // length of array
string str = Console.ReadLine();
int[] arr = new int[numThrows];
arr = str.Select(c => Convert.ToInt32(c.ToString())).ToArray();
Комментарии:
1. Консоль. setIn() . Что будет представлять содержимое этого массива? Как вы планируете его вводить? Вставка чего- то ?
2. этот массив представляет броски кости, поскольку каждая цифра будет от 1 до 6, я планирую создать массив из миллионов цифр, чтобы попробовать его.
3. вы можете прочитать его из файла, генерируя их случайным образом в своем коде… как вы должны записывать все
10000
целые числа в CMD… :/4. Я знаю, это кажется странным, но это домашнее задание для колледжа, и они говорят, что оно будет протестировано с массивом, содержащим миллион цифр, и это было предложено решить с помощью стандартного ввода и вывода
5. «Я прочитал из статьи, что консоль. Строка чтения занимает всего 254 символа» — Хм, я только что протестировал это. Это означает, что я могу прочитать более 1000000 символов одним
ReadLine()
. Где вы это прочитали?
Ответ №1:
Вы можете увеличить лимит, написав свою собственную функцию ReadLine .
const int BufferLimit = 10000;
public static string ReadLine()
{
Stream s = Console.OpenStandardInput(BufferLimit);
byte[] Buffer = new byte[BufferLimit];
int Length = s.Read(Buffer, 0, BufferLimit);
return new string(Encoding.UTF7.GetChars(Buffer, 0, Length));
}