2010-11-04 19 views
5

Existe-t-il un moyen de lire plusieurs entrées sur la même ligne en C# comme je le ferais en C++?C++ à C#: cin à Console.Read

J'ai inclus un exemple:

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    cout << "Format: name age"<< endl; 
    int age; 
    string name; 
    cin >> name >> age; 
    return 0; 
} 
+0

Ceci est plus une question de commodité opposée à la séparation ReadLine. –

Répondre

5

String.Split est la solution évidente ici:

string input = Console.ReadLine(); 
string [] split = input.Split(` `); 

Ensuite, utilisez le tableau résultant.

Vous perdez vos "gentils" noms de variables et vous devez convertir string en int - mais vous devriez le faire de toute façon.

Vous pouvez spécifier un ensemble de caractères divisés:

string [] split = words.Split(new Char [] {' ', ',', '.', ':', '\t' }); 
+0

Je pense que 'cin >> nom >> age' est plus flexible, il divise la chaîne non seulement par l'espace. – Andrey

2

Non. Vous devez l'implémenter vous-même en utilisant Console.Read ou Console.ReadLine.

0

Vous pouvez utiliser cette C# std::cin class écrit par Svetlin Nakov qui se comporte comme std::cin en C++ et java.util.Scanner. Il peut lire des nombres, des ints, des doubles, des décimales et des jetons de chaîne depuis la console, tout comme cin >> a >> b en C++.