Чтение int из потока

  1. static void Read(StreamReader f, out int x)
  2.         {
  3.             x = int.MinValue;
  4.             try
  5.             {
  6.                 x = Convert.ToInt32(read_lexem(f));
  7.             }
  8.             catch (Exception Exception) { Console.WriteLine(Exception); }
  9.         }
  10.  
  11.         static string read_lexem(StreamReader f)
  12.         {
  13.             Char c;
  14.             Int32 i;
  15.             StringBuilder sb;
  16.  
  17.             // Пропускаем пробелы
  18.             do
  19.             {
  20.                 i = f.Read();
  21.             }
  22.             while (Char.IsWhiteSpace((char)i));
  23.  
  24.             c = (char)i; // pascal: c := char(i);
  25.             sb = new StringBuilder();
  26.  
  27.             // accumulate nonspaces
  28.             do
  29.             {
  30.                 sb.Append(c);
  31.                 i = f.Peek();
  32.                 if (i == -1) break;
  33.  
  34.                 c = (char)i;
  35.                 if (Char.IsWhiteSpace(c)) break;
  36.                 f.Read();
  37.             }
  38.             while (true);
  39.  
  40.             return sb.ToString();
  41.         }
Собственно говоря, просто портировал удобную процедуру из паскаля, суть которой заключался в том, что из потока (файла) считывались целые числа.

  • +1
  • views 855
  • XakepPRO XakepPRO
  • comments 0

Реклама

Мы в соцсетях

tw tg yt gt