How to make integer to store 01 instead of 1 ?

G

gopesh patel

Hello all,

I try to store number 01 in integer i like this : int i = 01; cout
<< i ;

It simply prints 1. What I want is to print 01.

Is it possible ?

Thanks.
Gopesh
 
G

Goran Pusic

Hello all,

I try to store number 01 in integer i like this :  int i = 01;  cout
<< i ;

You do not understand what "int" means. More generally, you do not
understand how numbers are represented in a computer. There is no such
thing as an "int with value 01". There is only value 1. "0" is just
padding that you can add when you turn your "int" into a string of
characters (which happens for you when you "insert" a number into a
stream).
It simply prints 1.  What I want is to print 01.

Is it possible ?

Try

#include <iomanip>

cout << setw(2) << setfill('0') << i;

Goran.
 
G

gopesh patel

You do not understand what "int" means. More generally, you do not
understand how numbers are represented in a computer. There is no such
thing as an "int with value 01". There is only value 1. "0" is just
padding that you can add when you turn your "int" into a string of
characters (which happens for you when you "insert" a number into a
stream).



Try

#include <iomanip>

cout << setw(2) << setfill('0') << i;

Goran.

Thanks for your answers.
I do understand what integer means and how computer stores it.
I try to be more specific. I dont want to pad 0 to int i in cout. So
iomanip is useless for me.
What I want is when I convert integer 1 to string, the value of string
should become 01 (I want to pad 0 to string after converting it from
int).
Any ideas ?
 
S

Stuart Golodetz

gopesh said:
Thanks for your answers.
I do understand what integer means and how computer stores it.
I try to be more specific. I dont want to pad 0 to int i in cout. So
iomanip is useless for me.
What I want is when I convert integer 1 to string, the value of string
should become 01 (I want to pad 0 to string after converting it from
int).
Any ideas ?

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

int main()
{
int i = 1;
std::eek:stringstream oss;
oss << std::setw(2) << std::setfill('0') << i;
std::string s = oss.str();
std::cout << s << '\n';
return 0;
}

Cheers,
Stu
 
G

gopesh patel

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

int main()
{
        int i = 1;
        std::eek:stringstream oss;
        oss << std::setw(2) << std::setfill('0') << i;
        std::string s = oss.str();
        std::cout << s << '\n';
        return 0;

}

Cheers,
Stu

Thank you very much Stuart and all who cleared my question.
 
S

Stuart Golodetz

gopesh said:
Thank you very much Stuart and all who cleared my question.

It's worth observing that the answer I gave was essentially the same
answer Goran gave, just adapted to your specific situation. The only
real change I made was to use a std::eek:stringstream in place of
std::cout. I guess another way of putting that would be that one output
stream is much like another when it comes to things like this (worth
bearing in mind).

Regards,
Stu
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top