2016-12-02 51 views
0

這是我的代碼迴路輸入直到EOF:C# - 循環輸入直到EOF

string input; 
List<string> s = new List<string>(); 
while((input = Console.ReadLine()) != null && input != ""){ 
    input = Console.ReadLine(); 
    s.Add(input); 

} 

foreach(string h in s){ 
    Console.WriteLine(h); 
} 

輸入不斷循環的每一行,直到我按下「CTRL-Z」。每個輸入都被分配到列表s中,但似乎並非將所有輸入分配到列表s中。

輸出:

enter image description here

輸出應爲:

一個

b

Ç

d

感謝您的幫助;

+0

因爲您爲每個循環迭代調用ReadLine兩次。 – dman2306

回答

2

您每撥打一次電話號碼都會撥打Console.ReadLine()兩次。 簡單的解決方法是刪除第二個電話。

string input; 
List<string> s = new List<string>(); 
while((input = Console.ReadLine()) != null && input != ""){ 
    s.Add(input); 
} 

foreach(string h in s){ 
    Console.WriteLine(h); 
} 

你不妨寫成這樣,同時聲明:

while (!string.IsNullOrEmpty(input = Console.ReadLine())){ 
     s.Add(input); 
    } 
+0

謝謝。這真的很簡單,我雖然ReadLine在while語句中不會在輸入while語句後執行。 –

1

去除第二的readLine電話就足夠了。