GeirGrusom Skrevet 16. april 2009 Del Skrevet 16. april 2009 error C2440: 'initializing' : cannot convert from 'int' to 'std::basic_string<_Elem,_Traits,_Ax>' Lenke til kommentar
Kagee Skrevet 16. april 2009 Del Skrevet 16. april 2009 (endret) int a = 4; int b = 5; int ab = (a ettEllerAnnet b); // vil at variabelen skal holde tallet 45 Hvis jeg forstår det riktig var poenget å kombinere 2 int'er? int aar = 2009, maaned = 05, dag = 06; int dato; // 20090516 = 8 tegn, passer i en int std::stringstream ss; ss << aar << maaned << dag; ss >> dato; // dato inneholder int'en 200956 int aar = 2009, maaned=05, dag=16; int dato; // 20090516 = 8 tegn, passer i en int std::stringstream ss; ss << aar << (maaned < 10 ? "0":"") << maaned << (dag < 10 ? "0":"") << dag; ss >> dato; // dato inneholder int'en 20090506 Endret 16. april 2009 av Kagee Lenke til kommentar
Dead_Rabbit Skrevet 16. april 2009 Del Skrevet 16. april 2009 Hvis det blir mye konverteringer, hadde jeg laget en template-klasse for det: template<typename T, typename U = T> class ToString { public: static string convert(const T, const U); }; template<typename T, typename U> string ToString<T, U>::convert(T a, U b) { stringstream ss; ss << a << b; return ss.str(); } .. så kan man gjøre: cout << ToString<int>::convert(5, 5) << endl << ToString<int, string>::convert(5, " apekatter") << endl << ToString<string, double>::convert("Fooobar", 10) << endl; Lenke til kommentar
zotbar1234 Skrevet 17. april 2009 Del Skrevet 17. april 2009 Hvis det blir mye konverteringer, hadde jeg laget en template-klasse for det: Noen har gjort det alt. boost::lexical_cast. Lenke til kommentar
Dead_Rabbit Skrevet 17. april 2009 Del Skrevet 17. april 2009 Hvis det blir mye konverteringer, hadde jeg laget en template-klasse for det: Noen har gjort det alt. boost::lexical_cast. Vel... Daså. Jeg må sette meg litt mer inn i boost ser det ut til. Lenke til kommentar
Harkonnen Skrevet 17. mai 2009 Del Skrevet 17. mai 2009 (endret) Ingen som har gjort det på den avanserte og dårlige måten enda ? *skuffet* int a=4,b=5; char* c; asprintf(&c,"%X",(a<<4|b&0x0F)); a = atoi(c); printf("%d\n",a); Endret 17. mai 2009 av Harkonnen Lenke til kommentar
Csvk! Skrevet 18. juli 2009 Del Skrevet 18. juli 2009 (endret) Håper jeg ikke tabber meg altfor mye ut nå: #include<iostream> using namespace std; int main(){ int a = 4; int b = 5; cout<<a<<b<<endl; system("PAUSE"); } Resultat: 45 Dette programmet viser bare a og b ved siden av hverandre, det gjør ikke to integers om til en annen. Siden du er veldig ny (som meg) vil jeg anta at det kanskje er dette du er ute etter? Endret 18. juli 2009 av Csvk! Lenke til kommentar
Kagee Skrevet 19. juli 2009 Del Skrevet 19. juli 2009 Det er nok ikke det han var ute etter. Det er som du viser, ikke noe problem å skrive ut tallene ved siden av hverandre, det er noe mer vanskelig å "sette dem ved siden av hverandre" (45) i en variabel, og så bruke denne senere. Et eksempel der ditt forslag ikke fungerer, er dersom han ønsket å "slå sammen" 4 og 5 til 45, for så å legge til et nytt tall. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå