2009-09-04 19 views
11

Köşeden çıkarılan çıkışları nasıl alabilirim? Böylece, alçağa ihtiyaç duymadan konsolda anında yazabilir (cerr benzeri)?Kabarcıklı söndürülmüş çıktı

Bu rdbuf() -> pubsetbuf üzerinden yapılabileceğini düşündüm, ancak bu işe yaramaz. Aşağıdaki kod snippet'inin hemen konsola çıkması ve ardından birkaç saniye beklemesi gerekiyor. Ama bunun yerine, sadece bekler ve yalnızca program çıktığında ve arabellek temizlendiğinde çıktılar.

#include <iostream> 

int main() 
{ 
     std::cout.rdbuf()->pubsetbuf(0, 0); 
     std::cout << "A"; 
     sleep(5); 
} 

cevap

32
std::cout.setf(std::ios::unitbuf); 

hile yapalım mı.

+0

Bu çözüm benim için gerçekten çalıştı, teşekkürler! Başkalarına bir not: buffut veya printf kullanırken arabelleğe alma gerçekleşir ve satırın sonunda yeni satır kullanılsa bile olur. – Moot