Avatar billede conrad Nybegynder
17. oktober 2003 - 14:10 Der er 14 kommentarer og
2 løsninger

int til string

Det må være simpelt, men jeg ´kan simpelt hen ikke finde ud af det! Hvordan får jeg en int til en string?
Avatar billede conrad Nybegynder
17. oktober 2003 - 14:13 #1
jeg kan nævne at jeg skal bruge det til at lave et filnavn a'la  nodeid+"id.txt"
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:15 #2
Der er flere muligheder.

sprintf og itoa hvis det er C char arrays.
Avatar billede angak Nybegynder
17. oktober 2003 - 14:15 #3
Jeg mener der er en inbygget funktion i <stdlib.h>

char * itoa(int value)
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:18 #4
angak>

itoa har 3 argumenter !
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:21 #5
itoa eksempel:

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int main()
{
  int v = 123;
  char buf[10];
  string s = "fil";
  s += itoa(v,buf,10);
  s += ".dat";
  cout << s << endl;
}
Avatar billede angak Nybegynder
17. oktober 2003 - 14:21 #6
Hmmm... Den var lige gal med hukommelsen... =)

Husk at smide et svar!
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:34 #7
Samme eksempel i mere C++'sk variant:

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

using namespace std;

int main()
{
  int v = 123;
  ostringstream fnm;
  fnm << "fil" << v << ".dat";
  cout << fnm.str() << endl;
}
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:35 #8
str() returnerer en C++ string mens str().c_str() returnerer en
C char array.
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:35 #9
svar
Avatar billede conrad Nybegynder
17. oktober 2003 - 14:37 #10
kompileren kan ikke finde itoa (linux redhat 7.2).
Avatar billede angak Nybegynder
17. oktober 2003 - 14:41 #11
Har du inkluderet stdlib?
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:41 #12
itoa er desværre ikke standard.

Du kan erstatte itoa med sprintf.

NB: Jeg troede iøvrigt at du kørte med string og ikke char array.
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:42 #13
Samme eksempel:

#include <iostream>
#include <string>
#include <cstdio>

using namespace std;

int main()
{
  int v = 123;
  char buf[10];
  sprintf(buf,"%d",v);
  string s = "fil";
  s += buf;
  s += ".dat";
  cout << s << endl;
}
Avatar billede conrad Nybegynder
17. oktober 2003 - 14:44 #14
arne jeg bruger dit eksempel fra 14:34:25. Kan det passe jeg skal benytte c_str() for senere at kunne åbne en fil med  void open( const char *filename, openmode mode ); ?
Avatar billede arne_v Ekspert
17. oktober 2003 - 14:47 #15
Ja.

Det er jo et C char array.

Men c_str() er jo for at komme fra string til char array.
Avatar billede conrad Nybegynder
17. oktober 2003 - 14:53 #16
ok Tak begge to
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