PDA

View Full Version : [C++] convertire int to String


Re_Kotc
17-10-2009, 14:17
ciao a tutti, sono ancora alle prime armi ma ho un problema, sto cercando invando di capire come si converte un int to string, ho cercato su internet ma ho fatto una confusione incredibile, mi potete scrivere un codice veloce per farlo ? :) grazie mille

Re_Kotc
17-10-2009, 14:39
ok ho trovato su hwupgrade la domanda identica alla mia

http://www.hwupgrade.it/forum/showthread.php?t=1620481

ma mi restituisce questo errore in compilazione (uso VS):

warning C4552: '<<' : operator has no effect; expected operator with side-effect

cosa sbaglio?

Re_Kotc
17-10-2009, 14:45
e poi non sono sicuro di sapere cosa voglia esattamente dire

oss << intero ;

_Claudio
17-10-2009, 14:49
oss << n
Significa prendi n e copialo sullo stream oss.

Il codice completo è:

#include <sstream>

System::String^ inttoString(int n) {
ostringstream oss;

oss << n;
return gcnew System::String(oss.str().c_str());
}

Re_Kotc
17-10-2009, 15:07
ok risolto..:) ho aggiunto #include <sstream> all'inizio..thx :)

Re_Kotc
17-10-2009, 15:07
abbiamo postato insieme! :)....ok grazie della spiegazione per << :)

tomminno
17-10-2009, 17:53
oss << n
Significa prendi n e copialo sullo stream oss.

Il codice completo è:

#include <sstream>

System::String^ inttoString(int n) {
ostringstream oss;

oss << n;
return gcnew System::String(oss.str().c_str());
}


Perchè mai usare il C++/CLI?

template <class T> std::string ToString(T & t)
{
stringstream s;
s << t;
return s.str();
}

fero86
17-10-2009, 17:59
template <class T> std::string ToString(T & t)
{
stringstream s;
s << t;
return s.str();
}
perché su string hai esplicitato il namespace e su stringstream no?

la mia versione:

template<class T>
string ToString(T &t)
{
return (stringstream() << t).str();
}

:D

bel codice comunque: compatto e persino templatizzato :)

tomminno
17-10-2009, 18:27
perché su string hai esplicitato il namespace e su stringstream no?


Perchè nello scrivere me ne sono dimenticato ;)


la mia versione:

template<class T>
string ToString(T &t)
{
return (stringstream() << t).str();
}

:D

bel codice comunque: compatto e persino templatizzato :)

Il tuo è decisamente più compatto :)
Però potrebbe sembrare un pò criptico per uno alle prime armi, condensa le mie 3 righe in una sola, diciamo così il mio è più pedagogico :D

_Claudio
18-10-2009, 00:25
Perchè mai usare il C++/CLI?


Nel titolo c'è scritto String non string...

Tommo
18-10-2009, 11:43
Nel titolo c'è scritto String non string...

Ambiguity check fail :asd:

tomminno
18-10-2009, 11:51
Nel titolo c'è scritto String non string...

Nel titolo c'è anche scritto C++, C++/CLI non è C++.
E in tal caso perchè non consigliare un più comodo Convert::ToString?