string-int típuskonverzió probléma

Fórumok

Üdv!

Úgy tűnik, ez nem az én napom... :(

A lentebbire már rájöttem, miért vagyok hülye, viszont valami még mindig problémás. A típusok már elméletileg stimmelnek, le is fordul, viszont a következő helyen probléma van:

void ReadFromKeyboard(vector<string> &t)
{
string name;
cin >> name;
while(name!="::quit") { t.push_back(name); cin >> name; }
cout << atoi(t[1].c_str());
}

A t vektor így fest: vector<string> t;

A ciklus szépen végigszalad, az utána következő kövér sor viszont szegmens hibát dob. Valaki legyen szíves, magyarázza el nekem, hogy miért?

ez a hülyeség már megoldva:

Biztosan az agyamra ment valami, és meghülyültem, de ezt nagyon nem értem... Adott egy C++ program, abban a következő függvény ( t a mainben létrehozva: vector t; ):

bool valami(const vector t);

bool valami(const vector t)
{
bool l = false;
bool feltetel = false;
int i = 0;
do { if ( atoi(t[i]) == 0 ) { feltetel = true; } ... } while( (atoi(t[i]) >= 0) && (i < (int)t.size()) );
return l;
}

a fordító a kövérített részre panaszkodja, hogy:
error: cannot convert ‘const std::basic_string, std::allocator >’ to ‘const char*’ for argument ‘1’ to ‘int atoi(const char*)’

miért is? és hogy kéne javítani? köszi a segítséget!

Hozzászólások

a ... helyén természetesen a megfelelő helyen "l" és "feltetel" is kap értéket.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Ha elárulnád a t vectorod deklarációját < és > helyett &lt;-t és &gt;-t használva, az minden bizonnyal sokat lendítene a dolgon.

a válasz:

mert atoi const char-t vár, és stringet adok neki

t[i].c_str() megoldotta. bocsi az elmezavarért...

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

az at megoldás lehet a problémára?

ha az összes t[i]-t átírom t.at(i)-re, arra már szegmens hiba helyett ezt üzeni:

terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog