C++ görsel programlama

Başlatan mogutcan, 08 Kasım 2011 - 15:53:18

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

travego0403

Sorunun değer girildikten sonra 'Enter' a basmak zorunda kalman mı?
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

teknick

hyr sorunum ekrandan deger okunması sırasında (okuma işlemi dongunun içinde olduğu için) okuma yapılana kadar sayı artmıyor...
mesela getch ile yaptığımda saymaya devam ediyor ancak her sayı değişimi için bir tuşa basmam lazım...
ben eger ben bi tuşa basarsam veya ileri geri dur gibi bir komut girip enter'a basarsam dursun veya saysın istiyorum...
burada ekrandan okuma yapılana bekliyor program...

İlginiz için teşekkür ederim...
Ubuntuyu Cok Seviyorum...

travego0403

Söylemek istediğiniz şeyi tam olarak kafamda canlandıramadım. Fakat istediğiniz biraz Threadlere doğru kayıyor gibi geldi bana. Yeni bir başlık açarak ve mümkünse kodlarıda görebilirmiyiz. Dediğim gibi hem sayaç saymaya devam edecek hemde kullanıcının komutlarını bekleyeceksek threadleri bir incelemeniz yararınıza olur.(Threadlerle aramda pek iyi değil, tam olarak bilmiyorum)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

sem

Sorun travego0403 ün dediği gibi en mantıklı çözüm bu... Farklı iki işi aynı anda yaptırma var bu uygulamada. Eğer aynı anda farklı iş yapılacaksa dediğiniz örneğe göre akış şöyle olmalı;

//MAIN THREAD'e başla
int GLOBAL_KONTROL_DEGERI = 1;

//child thread
int last_val = 1;
while(GLOBAL_KONTROL_DEGERI == 1)
{
    printf(stdout, "%d\n", last_val++)
}
//child thread  sonu
//MAIN THREAD'e devam
while(1)
{

fscanf(stdin, "%d", &GLOBAL_KONTROL_DEGERI)
}



Ya da tek bir thread içerisinde stdin'i kontrol ederek de yapabilirsiniz;

while(1)
{
//ekrana yazmaya başka
if(stding dolu )
   //stdin'i oku, okunan değere göre ya yazmaya devam (continue) ya da döngüden çık (break)
}


Bu yöntemle yaparsanız threadlere bulaşmamış olursunuz  fakat stdin kontrolü de biraz araştırma isteyebilir.

Thread ile yapacaksanız bulunduğunuz ortama göre bakmanız gerekiyor. Çünkü thread yönetimi platform bağımlı bir konu. (getch fonksiyonundan anladığım kadarı ile Windows ortamında çalışıyorsunuz)

NOT: Bunu konsolda yapacaksanız eğer başlık biraz alakasız kaçmış sanırım
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

teknick

consol kısmında ancak travego0403'ün belirttiği ncurses ile consol da da gorsel birşeyler oluşturabiliyoruz...
ben buradaki görsellik üzerinde iki işi aynı anda yapmak istemiştim...
eğer farklı bir başlıkta anlatmam gerekirse memnuniyetle...

iyi programlama bilmiyorum, getch'i gorduğum orneklerden bilgi edindim...
linux consol var sadece kde yada gnome gibi bir arayüz de yok üzerinde...
sadece siyah ekran...

ben biraz da stdin 'e bakayım...
bilgileriniz için teşekkür ederim...
Ubuntuyu Cok Seviyorum...

Erdem

C++ ile görsel programlama derken pencereli programlar kasdediyorsanız alternatif olarak FLTK ("Fast Light Toolkit") diye bir kütüphane de var. Linux, Mac ve Windows altında çalışıyor.

http://www.fltk.org

Kurmak için

$ sudo apt-get install libfltk1.3-dev

Hatta Stroustrup yeni kitabı An Introduction to Programming by the Inventor of C++ nın bir bölümünde bu kütüphaneyi kullanıyor:

http://bit.ly/yHz8mV
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik