a Newbie need to convert
use a cast operation.
int x;
(char*) x;
x = "hey, cool!";
- DarkMage139
++++++++++++++++
I can do things, things you never knew,
I can change your world if you only knew.
I can do miracles if you want me to.
Anything is possible, I'll prove it to you.
int x;
(char*) x;
x = "hey, cool!";
- DarkMage139
++++++++++++++++
I can do things, things you never knew,
I can change your world if you only knew.
I can do miracles if you want me to.
Anything is possible, I'll prove it to you.
- DarkMage139
July 23, 2000 08:29 AM
(Sorry I forgot my account password which is why it says I''m Anonymous Poster. My nickname is Lava.)
I don''t think casting will work in that situation. An integer and a pointer to a string are totally different.
What you really should use is the function itoa(). The syntax is:
itoa(number, string, radix)
where number is the number to convert to a string, string is the buffer that you want to put the number in, and radix is the base of the number (usually 10 for decimal.)
Here''s how you would use it:
int mynumber = 55;
char mystring[2];
itoa(mynumber, mystring, 10);
Hope that helps,
- Lava
I don''t think casting will work in that situation. An integer and a pointer to a string are totally different.
What you really should use is the function itoa(). The syntax is:
itoa(number, string, radix)
where number is the number to convert to a string, string is the buffer that you want to put the number in, and radix is the base of the number (usually 10 for decimal.)
Here''s how you would use it:
int mynumber = 55;
char mystring[2];
itoa(mynumber, mystring, 10);
Hope that helps,
- Lava
Another way is by using sprintf(...);
e.g:
int x; // Integer value
char buffer[64]; // array of chars i.e known as a string
sprintf(buffer,"%d",x);
sprintf() is very similair to printf(). The only difference is, the output goes into a string, instead of to the screen. You must make sure that the output string which goes into buffer, is less than 64 bytes (63 chars + 1 ''\0'' NULL Terminator).
/Memir
e.g:
int x; // Integer value
char buffer[64]; // array of chars i.e known as a string
sprintf(buffer,"%d",x);
sprintf() is very similair to printf(). The only difference is, the output goes into a string, instead of to the screen. You must make sure that the output string which goes into buffer, is less than 64 bytes (63 chars + 1 ''\0'' NULL Terminator).
/Memir
Flash Pool - Pool/Billiards game for Facebook (developed by Memir).
Oh yeah, Forgot to ask, "Was that for your HighScore or Lifes?"
I used to convert numbers into strings manually instead of using sprintf / itoa. You should try it someday - It involves dividing ''/'' & moduluses ''%''
Oh yeah if you want your highscore to appear like this:
000350 etc
do this:
sprintf(buffer,"%05d",score);
where ''05'' means 5 Zeros. Remember though if you want a big dirty score you may want to use %ld (long decimal), and use a ''long'' rather than ''int'' - but this all depends on whats default. With MSVC++ ''signed long int'' (32-bits) is default for ''int''. In older compilers ''signed short int'' (16-bits) is default for ''int''. And some compilers have ''unsigned char'' default for ''char'' instead of ''signed char''. So be careful
Oh yeah Remember:
sprintf(buffer,"%d,%f",int_val,float_val);
// where int_val is 16-bit integer , float_val is 32-bit float
Is NOT the same as:
sprintf(buffer,"%ld,%f",int_val,float_val);
// The output will get messed up on the second one because the sprintf ellipis will take 4 bytes (2 from the int_val, and the first 2 from the float_val) - Hence your values will be totally Fux0red. Technically Speaking.
Anyway, enough rambling by me.
/Memir
I used to convert numbers into strings manually instead of using sprintf / itoa. You should try it someday - It involves dividing ''/'' & moduluses ''%''
Oh yeah if you want your highscore to appear like this:
000350 etc
do this:
sprintf(buffer,"%05d",score);
where ''05'' means 5 Zeros. Remember though if you want a big dirty score you may want to use %ld (long decimal), and use a ''long'' rather than ''int'' - but this all depends on whats default. With MSVC++ ''signed long int'' (32-bits) is default for ''int''. In older compilers ''signed short int'' (16-bits) is default for ''int''. And some compilers have ''unsigned char'' default for ''char'' instead of ''signed char''. So be careful
Oh yeah Remember:
sprintf(buffer,"%d,%f",int_val,float_val);
// where int_val is 16-bit integer , float_val is 32-bit float
Is NOT the same as:
sprintf(buffer,"%ld,%f",int_val,float_val);
// The output will get messed up on the second one because the sprintf ellipis will take 4 bytes (2 from the int_val, and the first 2 from the float_val) - Hence your values will be totally Fux0red. Technically Speaking.
Anyway, enough rambling by me.
/Memir
Flash Pool - Pool/Billiards game for Facebook (developed by Memir).
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement