PDA

Visualizza la versione completa : [C++] Convertire dato "string" in "int"


freetom
02-12-2010, 19:55
for(i=0;i<vect.size()-2;i++){

cout << "-";
cout << i << ":" << vect.at(i);
//cin.get();

//compara un vector <int> quindi prima di aggiungere vect.at(i) con:

compara.push_back(vect.at(i));



//devo necessariamente convertire il valore vect.at(i) in int...
// ma come???

//Per convertire in stringa un intero si fa:

string stringavoluta = intToString(valorevoluto);

//ma per convertire vect.at(i) in valore int ??? :popcorn:

}



grazie agli/alle esperti/e

:ciauz:

MdE2005
02-12-2010, 20:06
Dovresti quantomeno immaginare che per noi difficile ipotizzare che tipo di dato sia il tuo vect..

freetom
02-12-2010, 20:07
Originariamente inviato da MdE2005
Dovresti quantomeno immaginare che per noi difficile ipotizzare che tipo di dato sia il tuo vect..

di tipo string :ecco:

MdE2005
02-12-2010, 20:43
Potresti provare cos:



//funzione da chiamare
vector<int> input_int = vecstr_to_vecint(tokens);


//funzione convertitrice
vector<int> vecstr_to_vecint(vector<string> vs)
{
vector<int> ret;
for(vector<string>::iterator it=vs.begin();it!=vs.end();++it)
{
istringstream iss(*it);
int temp;
iss >> temp;
ret.push_back(temp);
}
return ret;
}



In questo caso ti converte i due tipi di vector.


Ciao :)

freetom
10-10-2012, 15:15
Originariamente inviato da MdE2005
Potresti provare cos:



//funzione da chiamare
vector<int> input_int = vecstr_to_vecint(tokens);


//funzione convertitrice
vector<int> vecstr_to_vecint(vector<string> vs)
{
vector<int> ret;
for(vector<string>::iterator it=vs.begin();it!=vs.end();++it)
{
istringstream iss(*it);
int temp;
iss >> temp;
ret.push_back(temp);
}
return ret;
}



In questo caso ti converte i due tipi di vector.


Ciao :)


Riesumo... questo post perch mi tornata l'esigenza di convertire un VEC di stringhe in un VEC di interi e credo che questa funzione faccia proprio questo...

Il problema che mi da sempre errore di questo tipo quando tento di implementarla nel mio programmino...

C:\Users\freetom\Desktop\PROVA-NEW-PRG-60e30\trasformazionevectors.cpp `tokens' undeclared (first use this function)

Grazie a chi mi illumina sull'errore.. sicuramente una cosa banalissima ma che non riesco a beccare... :dh: :ciauz:

freetom
10-10-2012, 15:18
Originariamente inviato da freetom
Riesumo... questo post perch mi tornata l'esigenza di convertire un VEC di stringhe in un VEC di interi e credo che questa funzione faccia proprio questo...

Il problema che mi da sempre errore di questo tipo quando tento di implementarla nel mio programmino...

C:\Users\freetom\Desktop\PROVA-NEW-PRG-60e30\trasformazionevectors.cpp `tokens' undeclared (first use this function)

Grazie a chi mi illumina sull'errore.. sicuramente una cosa banalissima ma che non riesco a beccare... :dh: :ciauz:

forse ho capito... :madai!?:

vector<int> input_int = vecstr_to_vecint(QUICIVAILVECTORSTRINGADACONVERTIR E);

devo ancora provare ma mettendolo non mi da errore... in fase di compilazione...

freetom
10-10-2012, 15:23
Originariamente inviato da freetom
forse ho capito... :madai!?:

vector<int> input_int = vecstr_to_vecint(QUICIVAILVECTORSTRINGADACONVERTIR E);

devo ancora provare ma mettendolo non mi da errore... in fase di compilazione...

Si era proprio cos!

Funziona alla grande!

Grazie ancora a distanza di tempo MdE2005 :ciauz:

Loading