Tam Sürümünü Görmek İçin : C++ karakter okumak yardım lütfen!!!
yasinefe
20/05/2008, 03:42
merhabalar arkadaşlar biz hastane kayıt programı yapıyoruz recete.txt dosyasının içeriği hastano; ilacno; ilacno;ilacno; bu şekilde bir hastanın alabileceği ilaclar recete haline getirilmiş ben bunları okuyup vektöre atamak istiyorum 2 değişken arasında ; karakteri olmasa bunu çok rahat yapıyorum bu ; karekteriyl e bu recete.txt dosyasını vektöre nasıl alabilrim yardımlarınız için teşekkkürler
acehreli
20/05/2008, 14:27
Bu gibi durumlarda butun satiri okuduktan sonra uzerinde islem yapmak ise yarar. Eger C++'in string tUrUnu kullaniyorsan satiri getline ile okuyup sonra ';' karakterini string'in find_first_of'uyla bulabilirsin:
#include <string>
#include <iostream>
using namespace::std;
int main()
{
string satir;
getline(cin, satir);
cout << "okudum: " << satir << '\n';
string::size_type pozisyon = satir.find_first_of(';');
if (pozisyon == string::npos) {
cout << "Bulamadim\n";
} else {
cout << "Buldum; pozisyonu: " << pozisyon << '\n';
}
}
Ama C'den gelen strtok da kullanilabilir.
Ali
yasinefe
20/05/2008, 16:44
teşekürler sağolun ilginiz için:) sizin yaptığınız işlemde benim bi tane ; yokki bi satırda 1 tane de ilaçno olabilir 3 tanede olabilir ve bütün ilaç no ların sonunda da ; karakteri var benim amacım hasta no ile ilac no ları birbirinden ayırmak bi vektöre göndermek benim ; pozizyonunu bilmek bu konuda bana nasıl bir katkı sağlayacak birde strtok fonk demişsiniz hocamız onu kullanbileceğimizi bize söyledi bu ayırma işi için bu konuda bilgi verebilirmisiniz kullanımıyla ilgili kusura bakmayın ben programlama yoksunuyum sizide ikide bir meşgul ediyorum amacım öğrenmek yardımlarınız için çok teşekkürler
acehreli
20/05/2008, 17:58
Iki tane pozisyonu bulduktan sonra string'in substr fonksiyonuyla yeni string'ler elde edebilirsin. Benim ornekte gordukten sonra find_first_of'u arastirdin mi? Onun aramaya nereden basladigini soyleyebildigin arkadaslari da var.
Ama bence de strtok'u kullan. Cok bilinen ve cok kullanilan bir fonksiyondur.
Ali
yasinefe
20/05/2008, 18:39
çok teşekkürler hocam da strtok u kullanmamın bana daha iyi sonuç vereceğini söyledi ben o yoldan yapmaya başlıcam tekrar teşekkürler
yasinefe
24/05/2008, 15:17
merhabalar iyi günler herkese ben aşağıdaki gibi bi kodla vektörün içerisindeki sayıyı bulabiliyorum ama bulamazsam programım çöküyo eğer program sayyı bulamazsa bana desinki sayı yok ve ardından olan sayılardan girisin diye yine bana sorsun istiyorum ama bu işin içinden çıkamadım bunu nasıl yapabilirim yardımlarınız iin teşekkürler
kodum:
cout<<"Silinecek hastanin numarasini giriniz : ";
cin>>no;
cout<<endl;
while(no!=numara)
{
numara=h[b].gethasta_no();
b++;
}
cout<<"Sildiginiz hasta numarasi hasta dosyasinin "<<b<<". elemani !!!\n\n";
h.erase(h.begin()+b-1);
acehreli
24/05/2008, 20:47
std::find diye bir algoritma var. Sen de sonucta onun yaptigini yapiyorsun ama b'nin vector'un disina cikmasina izin vermemen gerekir. Yani while'in icine soyle bir sey yazman gerekir:
while((no != numara) && (b != h.size()))
while'dan sonra b'ye bakacaksin; eger b == h.size() ise donguden sayiyi bulamadigin icin ciktin demektir.
Ali
yasinefe
25/05/2008, 21:43
denedim oldu çok teşekkürler yardımlarınız için :d
Forum Yazılımı : vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.