Det beror på vad det är för sträng. Använder du en std::string (vilket jag rekommenderar), så kör du med stringstream: klippt och klistrat från the incredible internet :) Ojsan, det var åt det hållet det skulle vara.. jaja. Nu har vi båda vägarna. Hittade en bra artikel efteråt också: http://www.codeproject.com/vcpp/stl/ostringstream.asp Det lustiga är att alla säger att man skall använda stringstream eftersom det har bättre felhantering mm men sen är det aldrig någon som kollar om konverteringen gick bra. Då kan man ju lika gärna använda atoi.Sv: String to int
#include <sstream>
//...
std::stringstream ss;
int a=5;
ss << a;
std::string s;
s=ss.str()
Annars finns itoa och sprintf, men det är helt onödigt. Det här är lättare, ger mindre fel och är ofta lika effektivt eller effektivare.
Sv: String to int
#include <iostream>
#include <sstream>
int main( )
{
std::string a("321");
int b;
std::stringstream ss(a);
ss >> b;
std::cout << b;
return 0;
}
Sv: String to int
EDIT: glömde retas. =)
Du får vara lite snabbare Fredrik. Två sekunder, det är illa, det. Fast å andra sidan så läste ju du rätt... =)Sv: String to int
Ett bättre exempel borde väl se ut så här:
std::string a("321");
int b;
std::stringstream ss(a);
ss >> b;
// fail sätts om konveringen misslyckades
// om eof inte är satt så användes inte hela strängen (vilket inte behöver vara fel)
if (ss.fail() || !ss.eof())
std::cout << "konverteringen gick inte bra"
else
std::cout << b;