játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5462
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2524

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2192
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
(C++) Konvertálások 2007.01.07 03:47


A eddigi konvertek:

    CConvert függvényei:

       string to float
       string to int
       float to int
       float to string (double to string)
       int to string



A teljes kódot mellékelem a segédlethez természetesen. Szinte minden sort kommenteztem, szóval remélem érthetö lesz.



A CConvert osztály függvényei:

Kód:
class CConvert
{
public:

void convert(int _num, char *string, unsigned short str_len) {}
// int to string

void convert(const double _num, char *string, unsigned short str_len) {}
// float to string (double to string)

int convert(const float _num) {}
// float to int

int pow(short _num, short power) {}
// segéd függvény a stringböl lebegöpontos számmá alakításhoz

float convert(const char *_num) {}
// string to float
// string to int

};




Az alábbiakban leírom a bemeneti, és a kimeneti változtókat.


// int to string
Kód:
inline void convert(int _num, char *string, unsigned short str_len)
// int to string

/*
bemenet:

_num:    egész szám, ezt konvertáljuk karakterláncá
*string: ebbe a karakterláncba kerül az egész szám
str_len: a karakterlánc hossza

kimenet:

nincs (void)
*/



// float to string (double to string)
Kód:
inline void convert(const double _num, char *string, unsigned short str_len)
// float to string (double to string)

/*
bemenet:

_num:    dupla pontosságú szám, ezt konvertáljuk karakterláncá
*string: ebbe a karakterláncba kerül a dupla pontosságú szám
str_len: a karakterlánc hossza

kimenet:

nincs (void)
*/



// float to int
Kód:
inline int convert(const float _num)
// float to int

/*
bemenet:

_num:    lebegöpontos szám ami majd egész számként tér vissza

kimenet:

int_num:  egész típus
*/



// segéd függvény a stringböl lebegöpontos számmá alakításhoz
Kód:
inline int pow(short _num, short power)
// segéd függvény a stringböl lebegöpontos számmá alakításhoz

/*
bemenet:

_num:    egész, ezt hatványozzuk

power:   rövid egész, hatványkitevö

kimenet:

_out:    egész típus
*/



// string to float
// string to int

Kód:
inline float convert(const char *_num)
// string to float
// string to int

/*
bemenet:

*_num:     karakterlánc

kimenet:

float_num: lebegöpontos szám v. egész szám
*/



Végül a függvények használata:

Kód:
CConvert cc;
char karilanc[20];

int   a;
float b;

// string to int
a = cc.convert("-321");
cout << a << endl;

// string to float
b = cc.convert("-345.653");
cout << b << endl;

// float to int
a = cc.convert(-2.7f);
cout << a << endl;

// float to string
cc.convert(-223.4112, karilanc, 20);
cout << karilanc << endl;

// int to string
cc.convert(-225, karilanc, 20);
cout << karilanc << endl;



Ennyi lett volna, a kódban mindent megtaláltok. Ha valami nem érthetö, vagy hibát találtok, vagy jobb 5letetek van várom a hozzászólásokat...
Fájl : (C++) Konvertálások
Méret: 0.4 Mb - Letöltve : 754

Értékelés: 7.00

Új hozzászólás
borsitsb          2009.07.25 14:25
Hehe tényleg megy így egyszerűbben is . Nem tud valaki megoldást arra, hogy hogyan lehet char típúsból stringbe és visszafelé konvertálni hiba nélkül? Ezzel a módszerrel sajna nem nagyon lehet.
balogh9          2007.01.18 11:11
Kód:
#include <iostream>
using namespace std;
#include <sstream>

void main()
{
const std::string _string = "2.232";

std::istringstream f(_string);

double _double;

f >> _double;

std::cout << _double;
}
MaNiAc          2007.01.08 07:22
SH!T... szoval az "sstream" nevu fileban
MaNiAc          2007.01.08 07:21
eh, sry, elkurtam. Nem kicsit, nagyon Mashol hivjak stringbuffernek (Jelen pillanatban 4 nyelvet hasznalok aktivan , szerintem a stringbuffer az java...)

Szoval stringstream a neve (a pelda az jo, csak mas a class neve) es az sstream.h fileban talalod.
ShAdeVampirE          2007.01.08 04:24
MaNiAc: ezt a stringbuffer-t merre találom? (melyik stl headerben)
MaNiAc          2007.01.08 01:42
4K Mb = 4 Giga? Amúgy lehet stl-lel sokkal rovidebben is... Pl. Int -> String

Kód:
int szam = 1;
string szoveg;
stringbuffer s;

s << szam;
s >> szoveg;


de mukszik visszafele is:

Kód:
s << szoveg;
s >> szam;


Amennyire megfigyeltem, meg csak nem is lassu ez a stringbufferes megoldas, raadasul eleg hibaturo.

Ennek ellenere ertekelem a munkat, amit bele fektettel
MaximumViolence          2007.01.07 10:09
Frankó