<code> Jag hade inte läst på ordentligt och inte heller prövat koden. Men nu... :-) För att konvertera int till string måste du bestämma på vilket sätt du vill ha det.Sv: int tilll std::string.. ?
#include <string>
#include <sstream>
using namespace std;
int talet = 1234567890;
string resultat;
ostringstream os(resultat);
os << talet;
os.flush();
cout << resultat;
</code>Sv: int tilll std::string.. ?
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string int2string(int n)
{
ostringstream os;
os << n;
return os.str();
}
int main()
{
int n = 123456;
string result = int2string(n);
cout << result << endl;
system("pause");
return 0;
}
Sv: int tilll std::string.. ?
I Sverige använder vi ju blanktecken som tusentalsavgränsare så integern 1234 blir strängen "1 234". I England skulle det bli "1,234". Det kan ju också vara så att du skall använda strängen till SQL, kommaseparerad fil eller liknande och då skall du nog ha strängen utan formattering, dvs "1234".
För att konvertera till sträng enligt de nationella inställningar som för tillfället gäller kan du göra så här:
(observera att det är de nationella inställningarna för programmet, vilket inte nödvändigtvis är de samma som är satta i operativsystemet.)
<code>
std::string s = boost::lexical_cast<std::string>(1234);
</code>
vilket bara är ett förenklat sätt att skriva
<code>
std::ostringstream str;
str << 1234;
s = str.str();
</code>
Om du istället vill ha strängen enligt något annat lands formateringsregler gör du så här:
<code>
std::ostringstream str;
str.imbue(std::locale("Germany"));
str << 1234;
s = str.str();
</code>
Eller för att konvertera helt utan formattering
<code>
std::ostringstream str;
str.imbue(std::locale::classic());
str << 1234;
s = str.str();
</code>