windows.h

Başlatan empax, 21 Mayıs 2011 - 19:11:09

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

empax

Merhaba.
Geany ile c kodlari yazmaya calisiyorum.
windows.h kutuphanesinin eksikligini nasil giderebiliriz ?
Bir fikriniz var mi?
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

egcodes

Acaba nasıl bir kod yazdınız görebilir miyim?
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

empax

Az once denemek icin bu kodu derlemeye calsitim;
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{

int x;
int y;
int i;

for (y = 1;y<=3;y++){
for(int i=1;i<=2;i++)
{
for(x=1;x<=(3-y);x++)
cout<<" ";
for(x=1;x<=y;x++){
system("color 7C");
cout<<"\x3 ";}
for(x=1;x<=(3-y);x++)
cout<<" ";
}
cout<<"\n";
}
for (y=1;y<=5;y++){
for(i=1;i<=y;i++)
cout<<" ";
for(int j=1;j<=(6-y);j++){
system("color 7C");
cout<<"\x3 ";}
cout<<"\n";
}




system("PAUSE");

return 0;
}
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

egcodes

Bu dil c++ ben anlamam ama şöyle birşey diyebilrim.

Kullandığınız windows.h kütüphanesi linux'da muhtelemen bulunmaz. Onun yerine benzer fonksiyonları içeren posix standartlarında bir kütüphane bulmanız.

Google amcaya sorun ya da cevap bekleyin :)

Kolay gelsin
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

empax

Aradim ama bulamadim eger elinzde windows.h iceren C ornegi varsa onun uzerinden gosterseniz de olur  :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

egcodes

Bu kodu windows.h'ı silerek linux üzerinde derlediğinizde çıktı olarak ne veriyor acaba ?

Windows.h'lı linux üzerinde bir kod bulunmaz böyle bir kütüphane olmadığı için.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

empax

windows.h kutuphanesini kaldirinca;

Alıntı Yaperror: 'system' was not declared in this scope
system("color 7C");
error: 'system' was not declared in this scope
system("color 7C");
error: 'system' was not declared in this scope
system("PAUSE");
hatalarini veriyor.
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

egcodes

windows.h kütüphanesinin içerdiği fonksiyonların işlevi komut satırında renkli çıktı vermek.

Bu işi linux'da şöyle yapabilirsin.

http://forum.ubuntu-tr.net/index.php/topic,20220.0.html

bu başlıkta bir arkadaşın yaptığı uygulamada renkli çıktılar kullanılmış orda ki örnekler yardımıyla yapabilirsin. (Herhangi bir kütüphane kullanmadan. system() fonksiyonu yerine direk printf'lerin içine yazılacak kodlar yardımıyla)

Kolay gelsin.
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

empax

windows.h ve system(...) komutlarini devre disi birakinca program calisiyor, printf komutuyla renklendirme uzerinde ilerlesem sorun kalmayacak sanirim. Tesekkurler. :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

utdmr

system() fonksiyonu cstdlib kütüphanesinde tanımlanmıştır, Windows üzerinde de Linux üzerinde de. Neden windows.h kullanıldığını anlamadım. windows.h'ı cstdlib olarak değiştirirseniz kod hatasız derlenip çalışacaktır, ama "color 7c" gibi bir komut yok Linux'ta, sanırım bu da Windows bağımlı bir şey. Bunun yerine ANSI'de tanımlanmış \033[94m gibi prefixler kullanılır, bunlar da Windows üzerinde de Linux üzerinde de çalışır.

Kişisel Blogum: Çoğunlukla Zararsız - cogunluklazararsiz.org
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -and a lot of courage- to move in the opposite direction.

empax

Alıntı yapılan: utdmr - 21 Mayıs 2011 - 20:22:41
system() fonksiyonu cstdlib kütüphanesinde tanımlanmıştır, Windows üzerinde de Linux üzerinde de. Neden windows.h kullanıldığını anlamadım. windows.h'ı cstdlib olarak değiştirirseniz kod hatasız derlenip çalışacaktır, ama "color 7c" gibi bir komut yok Linux'ta, sanırım bu da Windows bağımlı bir şey. Bunun yerine ANSI'de tanımlanmış \033[94m gibi prefixler kullanılır, bunlar da Windows üzerinde de Linux üzerinde de çalışır.

Aciklama icin tesekkurler. Bunlari bilmiyordum. :)
ANSI renk tablosu var midir ?
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

sem

".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?

empax

@sem0900;
oncelikle kaynak icin tesekkurler.
Eger biliyorsaniz ANSI renk kodlari C`de nasil kullaniliyor. Aradim ama saglikli bir sonuca ulasamadim.
Mesela;
printf("\033[31m Kirmizi \033[0m\n");
bu komuttaki renk komutlarinin yerlesimi nasil ve neye gore oluyor.

Bir de bu kodlar Windows platformunda hata veriyor. iki tarafta ortak calisan renk kodlari var midir?
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

sem

Alıntı yapılan: empax - 23 Mayıs 2011 - 21:21:23
@sem0900;
oncelikle kaynak icin tesekkurler.
Eger biliyorsaniz ANSI renk kodlari C`de nasil kullaniliyor. Aradim ama saglikli bir sonuca ulasamadim.
Mesela;
printf("\033[31m Kirmizi \033[0m\n");
bu komuttaki renk komutlarinin yerlesimi nasil ve neye gore oluyor.

Bir de bu kodlar Windows platformunda hata veriyor. iki tarafta ortak calisan renk kodlari var midir?

Windowsta hata vermemesi lazım diye biliyorum ANSI standartlarının.

Şu şekilde dener misiniz diye sorayım hem de kullanımına örnek vermiş olayım;

#include <stdio.h>


   char *const a = "\033[0m";
   char *const b = "\033[0;31;38m";
   char *const c = "\033[0;32;38m";
   char *const d = "\033[0;34;38m";


int main ()
{

      system("clear");
      fprintf(stdout,"%s1.  Doktor Menü%s\n%s2.  Hasta Menü%s\n%s3.  Randevu Menü%s\n4.  ÇIKIŞ\n\nSeçiminiz:",b,a,c,a,d,a);

}
}



Aşağıdaki verdiğim bağlantıdaki programdan alıntır. Program çok amatör ama renk konusunda idare eder =)=)

http://forum.ubuntu-tr.net/index.php/topic,14840.msg243987.html#msg243987
".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?

empax

Sanirim anladim  :)

Bir kac sorum daha olacak kusura bakmazsaniz.
1- char *const a komutundaki * ve const ne ise yariyor?
2-Yazdiginiz programi Geany ve Microsoftta denedim bir cok hata verdi. Microsoft kutuphanelerden dolayi hata verdi ama Geany neden hata verdi anlamadim. Sadece Netbeans ile calisti program.
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

sem

Yok canım ne kusuru=)

Hatalara bakmak lazım, tam olarak bir şey diyemeceğim programın neden çalışmadığı ile ilgili olarak.

char *a;
char x;

İkisi arasındaki fark x char türünden bir değişkendir (a,b,c,d gibi değişkenleri tutar diyebiliriz kısaca), a ise başında * olduğu için bir göstericidir. x içerisinde char türünden adres bilgisi saklayabiliriz.

const ise bir değişkenin değerinin değişmeyeceğini vurgulamak için kullanılır. Örneğin

void func (const int a);

prototipinde bir fonksiyon tanımlayalım. Bu fonksiyona int türünden bir değişken gönderbiliriz. Fakat gönderdiğimiz değişkenin değerini değiştiremeyiz. Fonksiyon prototipine bakan kişi de a değişkeninin değerinin sabit olduğunu daha kolay kavrar ve kodun okunabilirliği de artar.
".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?

6ng4n

* pointer(işaretçi) sembolü, const ise sabit tanımlamak için a değişkeninin değeri değişmez sabit olur.C de string(dizge)ler pointerlarla işlenir daha doğrusu bir char dizisinin pointer'ıdır yani char[15] tanımlayarak karakter sayısını sınırlamak yerine char* olarak tanımlayıp sınırı belli olmayan bir dizi yaratıp direk bellketen erişim sağlıyoruz.

empax

Alıntı yapılan: sem0900 - 24 Mayıs 2011 - 00:04:35
Yok canım ne kusuru=)

Hatalara bakmak lazım, tam olarak bir şey diyemeceğim programın neden çalışmadığı ile ilgili olarak.

char *a;
char x;

İkisi arasındaki fark x char türünden bir değişkendir (a,b,c,d gibi değişkenleri tutar diyebiliriz kısaca), a ise başında * olduğu için bir göstericidir. x içerisinde char türünden adres bilgisi saklayabiliriz.

const ise bir değişkenin değerinin değişmeyeceğini vurgulamak için kullanılır. Örneğin

void func (const int a);

prototipinde bir fonksiyon tanımlayalım. Bu fonksiyona int türünden bir değişken gönderbiliriz. Fakat gönderdiğimiz değişkenin değerini değiştiremeyiz. Fonksiyon prototipine bakan kişi de a değişkeninin değerinin sabit olduğunu daha kolay kavrar ve kodun okunabilirliği de artar.


Cok tesekkurler. Gostericiler konusu biraz karisikmis :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

sem

Rica ederim.

Aynen dediğiniz gibi, benim çalıştığım kitap da dahil olmak üzere okuduğum her yerde göstericilerin kavranması en zor konu olduğu söyleniyor. Ben de biraz derine ineyim, hemen aklımı alıyor bu konu =)=)
".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?

empax

Simdi ilgili dokumanlara bakiyordum, gozum karardi.  ;D
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

sem

".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?