2009-09-13 5 views
1

Je veux savoir comment prendre l'entrée de la console de la forme:entrée dans Nemerle

M 14 65 99 nemerle. En C# je le fais par:

  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]); 

Mais cela ne fonctionne pas dans Nemerle. S'il vous plaît me suggérer comment le faire à Nemerle.

Répondre

5
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

Vous pouvez également utiliser les macros 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") 
} 

Notez que, contrairement à C++, versions Nemerle de printf et scanf sont en sécurité. Ils ne compileront, si vous passez des paramètres du bon type. Dans l'exemple ci-dessus, les types corrects sont même déduits de l'utilisation.