Una opción sería aceptar una sola línea de entrada como una cadena y luego procesarla. Por ejemplo:
//Read line, and split it by whitespace into an array of strings
string[] tokens = Console.ReadLine().Split();
//Parse element 0
int a = int.Parse(tokens[0]);
//Parse element 1
int b = int.Parse(tokens[1]);
Un problema con este enfoque es que se producirá un error (por tirar un IndexOutOfRangeException
/FormatException
) si el usuario no introduce el texto en el formato esperado. Si esto es posible, deberá validar la entrada.
Por ejemplo, con las expresiones regulares:
string line = Console.ReadLine();
// If the line consists of a sequence of digits, followed by whitespaces,
// followed by another sequence of digits (doesn't handle overflows)
if(new Regex(@"^\d+\s+\d+$").IsMatch(line))
{
... // Valid: process input
}
else
{
... // Invalid input
}
Alternativamente:
- Verificar que la entrada se divide en exactamente 2 cadenas.
- Utilice
int.TryParse
para intente para analizar las cadenas en números.