Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno c++, int na string

Dobry den,
tady je muj problem:

Mam cyklus kterej ma vytvorit 200 adresaru s nazvem promene string, tj. str, a ja potrebuju, aby se ten string str, zmenil s kazdym cyklem podle int x, napr. slozka s nazvem 1, v druhem cyklu s nazvem 2, v tretim cyklu 3......
Napr. bych mel:

....int x = 0;

do
{
string str;

pak neco jako str = x; ( tohle je blbost, vytvori to adresare []!@#$%^&*()ABCDEFGH123456789, vic nic)

LPSECURITY_ATTRIBUTES attr;
attr = NULL;

CreateDirectory(str.c_str(), attr);

x++
} while ( x < 200); ......

Doufam ze chapete co potrebuji,
Predem diky.

Předmět Autor Datum
Konverziu v C++ spravíš pomocou stringstreamu: std::stringstream ss; for (int i = 0; i < 200; ++i)…
los 16.09.2011 20:49
los
aggregate `std::stringstream ss' has incomplete type and cannot be defined .... tohle mi to vyhodilo…
Swix 16.09.2011 21:22
Swix
#include <sstream>
los 16.09.2011 21:25
los
Ach, diky moc, ja si rikal ze to tam mam,a ted na to kouknu a mam tam #include <sstring> malej prekl…
Swix 16.09.2011 21:41
Swix
ss.str().c_str() Edit: Funkcia CreateDirectory akceptuje parameter typu LPCTSTR, ktorého konkrétny… poslední
los 16.09.2011 21:45
los
Ty voe, Losi, čumim kolik toho v programovaní zvládáš. Big respect...:beer:
MaSo 16.09.2011 21:30
MaSo

Konverziu v C++ spravíš pomocou stringstreamu:

std::stringstream ss;
for (int i = 0; i < 200; ++i) {
    ss.seekp(0);
    ss << i;
    std::cout << ss.str() << std::endl;
}

Ak používaš boost, tak môžeš použiť:

for (int i = 0; i < 200; ++i) {
    std::cout << boost::lexical_cast<std::string>(i) << std::endl;
}

V klasickom C môžeš použiť itoa.

Ach, diky moc, ja si rikal ze to tam mam,a ted na to kouknu a mam tam #include <sstring> malej preklep :-D , jeste mam ted problem s CreateDirectory, do ted jsem delal CreateDirectorty (str.c_str(), attr) resp. (ss.c_str(),...), ovsem ted mi to nebere c_str, a bez toho to taky nejde...

ss.str().c_str()

Edit: Funkcia CreateDirectory akceptuje parameter typu LPCTSTR, ktorého konkrétny typ závisí od toho, či kompiluješ s alebo bez podpory Unicode. Čiže buď si musíš dať pozor, či máš podporu Unicode pri kompilácii zapnutú (alebo vypnutú), alebo použiješ priamo CreateDirectoryA. Alebo použiješ std::wstring a CreateDirectoryW. Alebo si definuješ vlastný std::tstring, ktorý bude podľa podpory Unicode buď std::string alebo std::wstring. To isté platí pre stringstream/wstringstream/tstringstream.

Zpět do poradny Odpovědět na původní otázku Nahoru