C++ Yardım Pls!!!
-
beyler mesela klavyede bir tuşu seçecem ona basıldığı zaman işlemi yeni baştan alcak bunu nasıl yapabilir
örneğin:klavyedeki bütün harflere basmayı yasaklamak gibi sadece sayılar girilecek eğer harfe basılırsa işlemi geri alacak tekrar sayı isteyecek
-
Şöyle bir başlangıç yapsak, gerisini getirebilir misin?
#include <iostream>
#include <ctype.h>
#define maxLength 100 // Buraya istedigin uzunlugu yazusing namespace std;
int main()
{
char array[maxLength];
int i=0;
while(array[i])
{
if (isdigit(array[i]))
{
// yapilacak isler..
}
else // rakam olmadiginda yapilacak isler
i++;
}
system("pause");
return 0;
}
-
çok saol dostum tşk
-
konuyu burdan açtık devam edelim :) beyler şöle bi pogram düşündüm ama yapamadım şimdi progamı açtığımda belirlediğim hedefdeki bir dosyayı silecek böle bişiyi nasıl yazabiliriz beyler şimdiden yardımlarınız için tşk
-
fatal_17 bunu yazdı:
-----------------------------
konuyu burdan açtık devam edelim :) beyler şöle bi pogram düşündüm ama yapamadım şimdi progamı açtığımda belirlediğim hedefdeki bir dosyayı silecek böle bişiyi nasıl yazabiliriz beyler şimdiden yardımlarınız için tşk
-----------------------------Aklında sistem dosyası falan sildirmek varsa,
AntiVirusler yakalar.
O işler zor.
Ama bu tarz işlerini Win32 API ile yapabilirsin
(Çok detaylı bir konudur, her CPP developer'ın bilmesi gereken konulardan olduğunu düşünüyorum)
-
visual basicte;
Kill "dosyayolu"
şeklinde silebiliyosun :)
-
hımm anladım zaten yeni başladım C++'a 1 ay oldu bayada araştırdım ama bişi bulamadım şimdi senin dediğinden cıkardığım kendini biraz daha geliştir öle dön bu konuyo :) neyse saolun beyler
-
Ha bu arada,
Bastığın harf falan konusunda yukardaki arkadaşın verdiği kodun mantığı,
Girildikten sonra belli bir karakteri arayıp işlem yaptırmaktır.
Ama sen harfi havada yakalamak istiyorsan (Event olarak)
Bunun için de KeyBoard hook(Ya da tarzı bir durum) kullanmalısın.
Bu konuda da yardıma ihtiyacın olursa destek verebilirim.
Bende bir virus yazmaya uğraşıyordum da vakitsizlik, devamı gelmedi.
Zaten yazsam da kaçırmak, bulaştırmak vs..
Beni aşardı : ))
Yok yararlı birşey yapacaksan
VB - C# vs gibi Microsoft tabanlı diller kullanırsan
3 - 5 satırda istediğin harfi havada yakalarsın tutarsın değiştirirsin.
İstediğin harf klavyeden basılmış gibi falan yaparsın
Takılırsın : )
Ama gel gelelimki onlarla virüs vs gibi piçlik meseleleri yürümez.
Ben KeyCodeBul diye bir programımın source'unu paylaşmıştım forumda,
(C#)
Orda keyPress ve keyDown eventlerinin kullanımını görebilirsin.
Ha bir de dip not olarak
C++ ya da C de, karakter ararken,
Karakter olarak karşılaştırmak yerine TypeCasting kullanmanı ve Integer(ASCII) değerlerini aramanı tavsiye ederim.
(AV lerden kurtulmak için 'ufak' bir olay)
Ayrıca bu sana, 'fark edemeyeceğin kadar az' da olsa performans kazandıracaktır.
Çünkü 'char' primitive bir data type değildir.
Ama, 'integer' primitive dir.
Yani özetle bilgisayarlar 'char' dan çok uzakken, 'integer' a nispeten daha yakınlardır.
Hatta olayı binomial değerlerine falan da dökebilirsin, de gereksiz işler olur :|
-
yok dostum amacım virüs yazmak deildi zaten yeni başladım daha erken böle şeyler için:) amacım sadece bir hesap makinası yazmıştım söle bişi
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
float sayi1,sayi2,sonuc;
char islem,x;
cout<<"************************************************\n";
cout<<"* HESAP MAKINASI V.1 *\n";
cout<<"* Carpma icin * *\n";
cout<<"* Bolme icin / *\n";
cout<<"* Toplama icin + *\n";
cout<<"* Cikarma icin - *\n";
cout<<"* Coder By ..... *\n";
cout<<"************************************************\n";
cout<<"Bir sayi giriniz : ";
cin>>sayi1;
cout<<"islemi giriniz : ";
cin>>islem;
cout<<"2. sayiyi giriniz : ";
cin>>sayi2;
switch (islem)
{
case '+':
sonuc=(sayi1+sayi2);
cout<<"Toplama islemi sonucu : "<<sonuc<< endl;
cin>>sonuc;
case '-':
sonuc=(sayi1-sayi2);
cout<<"Cıkarma islemi sonucu : "<<sonuc<< endl;
cin>>sonuc;
case '*':
sonuc=(sayi1*sayi2);
cout<<"Carpma islemi sonucu : " <<sonuc<< endl;
cin>>sonuc;
case '/':
sonuc=(sayi1/sayi2);
cout<<"Bolme islemi sonucu : "<<sonuc<< endl;
cin>>sonuc;
}
system("PAUSE");
return EXIT_SUCCESS;
}
şimdi burda işlem için belirli tuşlar atadık o tuşlardan başka girersen işlem yapmıyo farz edelim ben yanlış bi tuşa bastım işte o anda işlemi tekrar istiyecek benden öle bişi düşünmüştüm yarımcı olursa sevinirim :)) -
islem char'ına bir değer ata
(A falan gibi birşey, * / + - olmasın yeter)
Sonra sorma işlemini bir while içine sok
Şöyle ki:
while( (islem != '*') | (islem != '/') | (islem != '+') | (islem != '-') )
Sonra bir 'if' kullanarak da hata durumunu belirt.
if'in içine ister continue; kullan, ister diğer işlemleri else'e sok.
Bir de switch in case lerinden sonra 'break;' ekle,
Bir de default ekle, eğer adam alakasız birşey girerse işlem yapmadığını söylesin diye.
Biraz karışık anlattım ama anlamışsındır sanırım :|
Vay anasını, adam hesap makinası yapıyor, ben adama Win32 API falan diyorum.
Kusura bakma hacım :D
-
bende ondan diyorum yeni başladım die:) ezdikçe ezdin beni :) evt demek istediğini cok iyi anladım cok sağol aslında bi konu açsanalar böle sorusu olan arkadaşlar oraya sorsa iyi olur....nese cok tşk:D