2014-09-04 90 views
0

如何從兩個輸入之間用空格分隔的用戶獲得輸入? 我試着用Conver.ToInt32(Console.ReadLine())來做這件事,但它顯示格式異常。 請告訴用戶是否有其他方式獲取輸入。 請幫忙! 謝謝你閱讀我的問題。如何從兩個輸入被空格分隔的用戶獲得輸入?

例如: 輸入:輸入是以上述格式。 值10 & 2應該存儲在不同的變量中。

+2

以字符串形式讀取輸入內容並將其與空格分開。 – 2014-09-04 11:25:46

+0

我認爲問題沒有得到用戶的輸入,但將其解析爲兩個變量? – Chris 2014-09-04 11:26:03

+0

[C#將字符串拆分爲另一個字符串]的可能重複(http://stackoverflow.com/questions/2245442/c-sharp-split-a-string-by-another-string) – DMAN 2014-09-04 11:26:08

回答

0
string[] inputs =Console.ReadLine().Split(null); 

int input1=TryParse(inputs[0]); 
int input2=TryParse(inputs[1]); 
0

Console.ReadLine()只會在用戶輸入新行(IE。回車)時返回值。

爲了得到你想要的東西,你可以考慮使用Console.ReadKey()Console.Read()以獲得單個字符。

,使得你的代碼看起來是這樣的:

public int GetNextNumber() 
{ 
    char nextChar; 
    string numberString = string.Empty; 
    while (!char.IsWhiteSpace(nextChar = (char)Console.Read()) 
     numberString += nextChar; 
    int result; 
    if (!int.TryParse(numberString, out result)) 
     throw new InvalidCastException("Specified string is not an integral"); 
    return result; 
} 

然後,您可以使用該方法從控制檯讀取每個個體數,當用戶輸入它。 你也可以做一個Console.ReadLine()和拆分結果字符串得到像其他人建議的數字

希望這會有所幫助。

1
string[] inputs =TextBoX1.Text.Split(" "); 
String first = inputs[0].ToString(); 
String second = inputs[1].ToString(); 
+0

您可以擴展您的答案以包含你的代碼的解釋?它比讀者想象的更能幫助讀者。 – gunr2171 2014-09-04 18:26:52

0

因爲我沒有看到你試過的實際代碼我可以假設你不喜歡的東西:

int input = Convert.ToInt32(Console.ReadLine()); 

和實際投入「10 2」,這是一個字符串。 該方法嘗試將空白空間轉換爲int時發生錯誤。

您需要將輸入保存爲字符串變量,然後將字符串變量以空格分隔爲分隔符。您可以將結果保存爲字符串數組(string []),然後將字符串[]的每個數組元素轉換爲int。

讀取輸入您的代碼:

string input = Console.Readline(); 

拆分方法爲您的代碼:

string[] stringArray= input.Split(' '); 

每個字符串轉換成int爲您的代碼:

List<int> integerList = new List<int>(); 

foreach (string str in array) 
{ 
    integerList.Add(Convert.ToInt32(str)); 
} 

注,這也可以用於超過2個數字的輸入,例如「10 2 17 3 19 27」,並且您不需要自己的變量因爲您將每個值添加到列表中,因此對於每個輸入部分都適用。爲什麼列表?因爲大小是動態的。你的問題也可以使用數組而不是列表,因爲在你分割字符串的時候,你知道intArray需要的大小,但是列表更舒適。

相關問題