Jump to content

  • Log In with Google      Sign In   
  • Create Account

convert int into const char *


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   -  Reputation: 112

Like
0Likes
Like

Posted 25 January 2008 - 07:05 AM

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

Sponsor:

#2 Antheus   Members   -  Reputation: 2397

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   -  Reputation: 9669

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   -  Reputation: 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   -  Reputation: 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   -  Reputation: 8727

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   -  Reputation: 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   -  Reputation: 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   -  Reputation: 9669

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   -  Reputation: 9669

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   -  Reputation: 8727

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   -  Reputation: 1977

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   -  Reputation: 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.



PARTNERS