2012-09-01 77 views
-5

我有這個線程運行以下形式的代碼,其中strm1在我測試的情況下是控制檯stdin。c#console stdin輸入流讀取

while (true) { strm1.Read(buffer, 0, 1); dosomething1(buffer); } 

按下ENTER鍵,dosomething1()調用dosomething2()。然而,即使當我按下輸入,我仍然不得不按其他鍵dosomething2()運行。我怎樣才能解決這個問題?謝謝。

+0

dosomething2()如何和在哪裏調用 – Adil

+0

我們需要看到「dosomething1()」方法代碼。當dosomething1()檢測到緩衝區是\ n時,在dosomething1()中使用 –

+0

。爲什麼這個donwvoted!??? – irisjay

回答

0

最後,我解決了這個問題:用Stream s代替StreamReader s!可能是Microsoft的一個實現問題,但至少可以解決問題。

0

我不知道你的代碼執行什麼檢查,但請記住,在Windows中,Environment.NewLine是兩個字符:CR(\ r),LF(\ n)。

+0

是的,我知道這一點。這不應該影響它,因爲如果當按下一個輸入時,由於讀取處於while循環中,它仍會讀取\ n。 – irisjay