Вход в немерле - PullRequest
       52

Вход в немерле

1 голос
/ 13 сентября 2009

Я хочу знать, как принимать данные с консоли вида:

М 14 65 99 в немерле. В C # я делаю это по:

            string[] input = System.Console.ReadLine().Split(' ');
            ch = System.Char.Parse(input[0]);
            a  = System.Int32.Parse(input[1]);
            d =  System.Int32.Parse(input[2]);
            m =  System.Int32.Parse(input[3]);

Но это не работает в Nemerle. Подскажите пожалуйста как это сделать в Nemerle.

Ответы [ 2 ]

5 голосов
/ 13 сентября 2009
class Test
{
  public static Main () : void
  {
    def input = System.Console.ReadLine ().Split (' ');
    def ch = System.Char.Parse (input[0]);
    def a  = System.Int32.Parse (input[1]);
    def d =  System.Int32.Parse (input[2]);
    def m =  System.Int32.Parse (input[3]);

    System.Console.WriteLine ("ch:{0} a:{1} d:{2} m:{3}",  ch, a, d, m);
  }
}
3 голосов
/ 04 ноября 2009

Вы также можете использовать макросы IO:

using Nemerle.IO;
using System;

mutable ch, a, d, m;
try
{
    scanf("%c %d %d %d", ch, a, d, m);
    printf("%c %d %d %d\n", ch, a, d, m);
}
catch
{
    | _ is InvalidInput => Console.WriteLine("Invalid input")
}

Обратите внимание, что в отличие от C ++, Nemerle-версии printf и scanf безопасны. Они будут компилироваться, только если вы передадите параметры правильного типа. В приведенном выше примере правильные типы даже выводятся из использования.

...