Чтение int из потока
- static void Read(StreamReader f, out int x)
- {
- x = int.MinValue;
- try
- {
- x = Convert.ToInt32(read_lexem(f));
- }
- catch (Exception Exception) { Console.WriteLine(Exception); }
- }
- static string read_lexem(StreamReader f)
- {
- Char c;
- Int32 i;
- StringBuilder sb;
- // Пропускаем пробелы
- do
- {
- i = f.Read();
- }
- while (Char.IsWhiteSpace((char)i));
- c = (char)i; // pascal: c := char(i);
- sb = new StringBuilder();
- // accumulate nonspaces
- do
- {
- sb.Append(c);
- i = f.Peek();
- if (i == -1) break;
- c = (char)i;
- if (Char.IsWhiteSpace(c)) break;
- f.Read();
- }
- while (true);
- return sb.ToString();
- }
Собственно говоря, просто портировал удобную процедуру из паскаля, суть которой заключался в том, что из потока (файла) считывались целые числа.