2009-12-18 32 views
6

'da herhangi bir şey olup olmadığını nasıl kontrol edeceğinizde, sinemada bir şey olup olmadığını kontrol etmenin bir yolu var mı? Peek() denedim ama eğer bir şey yoksa() bir şey beklemez ve istediğim bu değildir. Teşekkür ederizCinlerde [C++]

cevap

5

Klavyeyi tuş vuruşlarını okumak için kullanamazsınız, sonra da uygun bir şey yoksa başka bir şey yapmak için devam edersiniz. cin, tamponlu bir akıştır ve sadece bu şekilde çalışmaz. Aslında, Standart C++ kullanarak bunu yapmanın bir yolu yoktur - OS'ye özgü özellikleri kullanmanız gerekecektir.

+0

Cevaplarınız için teşekkürler çocuklar. –

+0

Standart, hiçbir girdi beklenmezse EOF durumuna giren "cin" uygulamasına izin verir. Ancak, bildiğim (MS VS, Borland ve GCC'yi içeren) derleyicilerin standart kütüphaneleri böyle bir uygulamayı sağlamıyor. (Emin değilim çünkü akımın kendi başına EOF durumunda bulunup bulunamayacağını bilmiyorum ve bu, 'cin' tuş vuruşu üzerine ne yapması gerektiğidir.) –

+1

eof durumu okuma başarısızlığının sonucudur - kazandı Okumadığınız sürece ayarlanamaz. –

4

C++ akışları ve streambuf'ları eşzamanlıdır, yani, okunacak kadar girdi bulunana kadar bunlar bloke edilir. Bir akışı eşzamansız olarak kontrol etmek için taşınabilir bir yol yoktur. Peek() 'i ayrı bir iş parçacığından çağırmayı düşünün.