Avatar billede javanic Nybegynder
14. maj 2004 - 23:41 Der er 10 kommentarer og
1 løsning

typecasting med mere.. en komplet liste

Jeg kunne afsindigt godt tænke mig, at vi lige fik lavet en liste over hvordan man caster de forskellige datatyper i c++...

F.eks hvordan man caster:
en string til en int.
en <basic><string> til en int

...listen må MEGET gerne blive rigtig, rigtig lang ;o) Jeg er afsindig træt af, at til en anden. skulle bruge tid på at finde ud af hvordan fanden jeg caster én type
Avatar billede javanic Nybegynder
14. maj 2004 - 23:42 #1
...til en anden !!
Avatar billede arne_v Ekspert
14. maj 2004 - 23:46 #2
http://www.eksperten.dk/artikler/143

indeholder nogle af mest basale type konverteringer (dog mere med fokus på
C end på STL typer)
Avatar billede javanic Nybegynder
14. maj 2004 - 23:59 #3
hva' fanden Arne,...ser du ikke bryllup.

Har kigget lidt på din artikel, og den ser jo rigtig fin ud,...men jeg mangler alligevel lidt om STL typer.

Har du ikke lyst til at lave en efterfølger ??? ;o)

Jeg har eksempelvis:

vector<string> v;
basic_string <char> x = line_vector.at(0);
basic_string <char> y = line_vector.at(1);


hvordan caster jeg den til en int ???
Avatar billede javanic Nybegynder
14. maj 2004 - 23:59 #4
altså x og y...
Avatar billede arne_v Ekspert
15. maj 2004 - 00:04 #5
Du kan altid konvertere en string til en char* med c_str metoden.

atoi(x.c_str())

bør virke.
Avatar billede javanic Nybegynder
15. maj 2004 - 00:05 #6
"line_vector.at(0)"

...skulle selvfølgelig have været:

"v.at(0)"
Avatar billede arne_v Ekspert
15. maj 2004 - 00:07 #7
En mere C++'sk måder er:

stringstream ss(x);
ss >> iv;
Avatar billede bertelbrander Novice
15. maj 2004 - 00:08 #8
int to str:

#include <sstream>
#include <iostream>
#include <string>

std::string ToString(int i)
{
  std::stringstream ss;
  ss << i;
  return ss.str();
}

int main(void)
{
  std::string p = ToString(1234);
  std::cout << p << std::endl;
}
Avatar billede javanic Nybegynder
15. maj 2004 - 00:08 #9
det kan jeg da også... thanks, Arne ! ligger du lige et svar
Avatar billede arne_v Ekspert
15. maj 2004 - 00:12 #10
svar
Avatar billede bertelbrander Novice
15. maj 2004 - 00:12 #11
Og med string to int:

#include <sstream>
#include <iostream>
#include <string>

std::string ToString(int i)
{
  std::stringstream ss;
  ss << i;
  return ss.str();
}

int ToInt(std::string &s)
{
  std::stringstream ss(s);
  int i;
  ss >> i;
  return i;
}

int main(void)
{
  std::string p = ToString(1234);
  std::cout << p << std::endl;
  int n = ToInt(p);
  std::cout << n << std::endl;
}

Det er iøvrigt ikke et cast.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester