2014-12-21 48 views
-5

INPUT如何阅读在C#

67 89两个数字(单行)

我必须输入从控制台的两个数字,并将其存储在变量两种不同的整数。 这样做。

+3

阅读第一个数字,然后阅读第二个数字。 – dasblinkenlight

回答

2
var result = Console.ReadLine().Split(new [] { ' '}); 

沿着这些线条的东西,我的头顶。

Console.ReadLine()和使用Linq文档String.Split()

,那么你可以伸进一个int数组:

var result = Console.ReadLine() 
        .Split(new[] { ' ' }) //Explicit separator char(s) 
        .Select(i => int.Parse(i)) 
        .ToArray(); 

甚至有点更简洁:

var result = Console.ReadLine() 
        .Split() //Assuming whitespace as separator 
        .Select(i => int.Parse(i)) 
        .ToArray(); 

结果现在是一个整数。

+0

除了在我的回答下面我们交换意见,请注意即使Split()不接受null或零参数,也不需要创建一个字符数组。由于params关键字,编译器会为你处理这个问题。所以,你只需要写'.Split('')'或者说是否有2个分隔符'.Split('','@')'。请参见http://msdn.microsoft.com/en-gb/library/w5zay9db.aspx –

3

这将从控制台读取一行,拆分字符串,将组件解析为整数,并将其输出为列表。然后您可以根据需要从列表中取出每件物品。改进

var integers = Console.ReadLine().Split().Select(s => int.Parse(s)).ToArray(); 
int first = integers[0]; 
int second = integers[1]; 

地区:

Console.ReadLine().Split().Select(s => int.Parse(s)).ToList() 

如果总是会有两个数字,你可以如下做到这一点

  • 你可能想使用TryParse代替Parse和输出一个友好的错误消息,如果输入不解析

  • 如果您需要确切地2号(无多,不会少),你可能会想,如果<> 2

+0

'Split()'[没有接受任何参数的重载](http://msdn.microsoft.com/en-us/库/ system.string.split(v = vs.110)的.aspx)。 **编辑**:但这似乎工作正常。今天学到了一些新东西:P – RobIII

+0

@Robll它在LinqPad中工作...... MSDN:“如果分隔符参数为空或不包含任何字符,则认为空格字符是分隔符。”分离者是一个参数论证。 –

+1

是的,从来没有意识到它可以用这个简单的:P – RobIII

3
using System; 
public class Program 
{ 
    static void Main(string[] args) 
    { 
     var numbers = Console.ReadLine(); 
     var numberList = numbers.Split(' '); 
     var number1 = Convert.ToInt32(numberList[0]); 
     var number2 = Convert.ToInt32(numberList[1]); 
     Console.WriteLine(number1 + number2); 
     Console.ReadKey(); 
    } 
} 

如果从其他程序执行检查的integers和输出长度的友好错误信息你需要从参数中读取