PDA

Tam Sürümünü Görmek İçin : String birleştirme


kasif
14/04/2008, 13:12
void ParaCekme(double CekilenTutar)
{

char bufTutar[10];

itoa(CekilenTutar, bufTutar, 10);

LogKaydet("Para Cekme: Tutar = " + Tutar);
}
Merhaba, ParaCekme adında bir metodum var. Yapmak istediğim kişinin nekadar para çektiğini log dosyasına kayıt etmek. CekilenTutar doğal olarak double tipinde biraz araştırınca itoa fonksiyonuna rastladım ama olmadı. Söylediğim gibi amacım tutar degerini stringe çevirip sonrasında da sabit string ifadeye ekleyip log dosyasına kaydetmek. Bu iş bu kadar zor mu?


Akın Öcal
14/04/2008, 14:52
soyle bir sey kullanabilirsin :

sprintf( bufTutar , "%d", CekilenTutar) ;

%d yüzünden decimal olarak atacak, sen double a gore %xxxf yaparsin

string birlesimi icin de gene sprintf i %s ile kullanabilirsin.

kasif
14/04/2008, 16:45
Akın Teşekkürler ama bu işin daha başka bir yolu var mı? Yani delphide olduğu gibi veya C# string1 + string2 yapabilir miyim? Sonuçta C++'da tanımlı bir string tipi var. Beni yanlış anlamayın amacım sadece öğrenmek.

Akın Öcal
14/04/2008, 20:59
dogal veri türleri ile yok , kendi class ini yazip artı operatorunu overload edebilirsin , ya da bu is icin C++ da yazilmis hazir class lari kullanabilirsin , sonucta bu acidan C++ in diger dillerden farki yok , ornegin VC++ da cok kullanilan (tabiki WinAPI haric) CString bu sekildedir , bu class in aynisini implement etmek istiyorsan , Kaan Aslan'ın dersinde tutulmus notlardan olusan sanirim netten indirebilecegin 'C++ Uygulamalari' gibi bir ders notlari olacak , orada bu implementasyonu bulabilirsin , ya da Codeproject te de , hic rastlamadim ama eminim ki birileri .Net deki String icin de C++ versiyonunu yazip dokumante etmistir :)

acehreli
15/04/2008, 08:25
Standart C++'ta std::string var; kasif'in baska bir tUre bakmasina gerek yok:


string m = "merhaba";
string d = " dunya";
string md = m + d;


Ama aslinda bir string icine yazmayi saglayan ostringstream'e ihtiyaci var:


#include <sstream>
#include <string>
#include <iostream>

using namespace std;

int main()
{
ostringstream cikis;

// cikis'in icine gonderiyoruz
cikis << "Para Cekme: Tutar = " << 42;

// sonra da sonucu kullaniyoruz
cout << cikis.str() << '\n';
}


Ali

kasif
15/04/2008, 12:25
Teşekkürler Akın Öcal ve (http://forum.ceviz.net/member.php?u=14328)acehreli (http://forum.ceviz.net/member.php?u=326)

Akın Öcal
15/04/2008, 21:05
Standart C++'ta std::string var; kasif'in baska bir tUre bakmasina gerek yok:
Ali

Benim kesinlikle ANSI-C++ i tekrar etmem lazim , direk VC++ tabanli düsünüyorm :)