Jump to content

View more

Image of the Day

#ld38 #screenshotsaturday Mimosa Fizz action gif #2 https://t.co/TUzdppvfUL
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

convert int into const char *

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
12 replies to this topic

#1 mnbvlk   Members   

112
Like
0Likes
Like

Posted 25 January 2008 - 07:05 AM

how to convert integer into const char * in c++ thanks

#2 Antheus   Members   

2409
Like
0Likes
Like

Posted 25 January 2008 - 07:07 AM

Using type-casting.

But before posting very evil code to do that - why are you trying to do that?

#3 SiCrane   Moderators   

11774
Like
0Likes
Like

Posted 25 January 2008 - 07:07 AM

You can either use boost::lexical_cast or a std::stringstream.

std::stringstream sstr;
sstr << my_int;
std::string str1 = sstr.str();

std::string str2 = boost::lexical_cast<std::string>(my_int);

Once in a string, you can use the c_str() member function to get a const char *.

#4 mnbvlk   Members   

112
Like
0Likes
Like

Posted 25 January 2008 - 07:16 AM

i want to display a message box showing x-coordiante whenever left mouse click is being done
MessageBox(NULL, some const char (i suppose),"ERROR",MB_OK|MB_ICONEXCLAMATION);

so i want to convert point.x into some character array to pass it in MessageBox
arguments

#5 mnbvlk   Members   

112
Like
0Likes
Like

Posted 25 January 2008 - 07:26 AM

also typecasting does not work
(const char*)point.x displays empty space instead of a coordinate

how to display the coordinates in a messagebox

#6 rip-off   Moderators   

10897
Like
0Likes
Like

Posted 25 January 2008 - 07:29 AM

Quote:
Original post by mnbvlk
also typecasting does not work
(const char*)point.x displays empty space instead of a coordinate

how to display the coordinates in a messagebox


Read SiCrane's post.

#7 superdeveloper   Members   

188
Like
0Likes
Like

Posted 25 January 2008 - 07:45 AM

A little odd, but why has no-one yet mentioned itoa()?

personally I use _itot(...).

_itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow (CRT)

#8 Jazonxyz   Members   

138
Like
0Likes
Like

Posted 25 January 2008 - 07:50 AM

Its pretty simple.

First make a char.

----------------------
char StringX[5];
----------------------
next call sprintf();
----------------------

sprintf(StringX,"%d",IntX);

-------------------------
This gets String X and fills it up with IntX. Dont mind the "%d" its just a parameter.
-------------------------

int other words, this is what you need.

int iMouseX = GetMouseX() //I guess you already got that far...

char szMouseX[5];

sprintf(szMouseX,"%d",MouseX);

MessageBox(NULL,szMouseX,"ERROR",MB_OK);

Hope this helps more then it hurts

#9 SiCrane   Moderators   

11774
Like
0Likes
Like

Posted 25 January 2008 - 07:56 AM

Quote:
Original post by superdeveloper
A little odd, but why has no-one yet mentioned itoa()?

itoa() is a non-standard function. In fact, it's almost militantly non-standard. I've seen at least five different function signatures for itoa() over the years:

char * itoa(int, char *, int); // you supply the buffer
char * itoa(int, int, char *); // you supply the buffer
char * itoa(int, char *); // you supply the buffer
char * itoa(int, int); // you need to free the pointer
char * itoa(int); // you need to free the pointer

Don't use itoa() if you even remotely care about portable code.


#10 SiCrane   Moderators   

11774
Like
0Likes
Like

Posted 25 January 2008 - 07:58 AM

Quote:
Original post by Jazonxyz
char szMouseX[5];

Congratulations, your code has a buffer overrun vulnerability.


#11 rip-off   Moderators   

10897
Like
0Likes
Like

Posted 25 January 2008 - 07:58 AM

Quote:
Original post by Jazonxyz
sprintf(StringX,"%d",IntX);


The OP specified C++. Idiomatic C++ uses std::string for text.

#12 scgames   Members   

2086
Like
0Likes
Like

Posted 25 January 2008 - 07:59 AM

Quote:
Original post by superdeveloper
A little odd, but why has no-one yet mentioned itoa()?

personally I use _itot(...).
Quote:
Original post by Jazonxyz
Its pretty simple.

First make a char.

----------------------
char StringX[5];
----------------------
next call sprintf();
----------------------

sprintf(StringX,"%d",IntX);

-------------------------
This gets String X and fills it up with IntX. Dont mind the "%d" its just a parameter.
-------------------------

int other words, this is what you need.

int iMouseX = GetMouseX() //I guess you already got that far...

char szMouseX[5];

sprintf(szMouseX,"%d",MouseX);

MessageBox(NULL,szMouseX,"ERROR",MB_OK);

Hope this helps more then it hurts
@The OP: Since you're programming in C++, I would suggest following SiCrane's suggestion instead.

Suggested reading.

#13 terry_burns85   Members   

170
Like
0Likes
Like

Posted 25 January 2008 - 03:24 PM

Quote:
Original post by SiCrane
You can either use boost::lexical_cast or a std::stringstream.

std::stringstream sstr;
sstr << my_int;
std::string str1 = sstr.str();

std::string str2 = boost::lexical_cast<std::string>(my_int);

Once in a string, you can use the c_str() member function to get a const char *.


i use stringstream quite frequently in most Apps, its quite nice, and really easy to use, id also recommend this




Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.