How to make integer to store 01 instead of 1 ?

Discussion in 'C++' started by gopesh patel, Sep 15, 2010.

  1. gopesh patel

    gopesh patel Guest

    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
    gopesh patel, Sep 15, 2010
    #1
    1. Advertising

  2. gopesh patel

    Goran Pusic Guest

    On Sep 16, 12:24 am, gopesh patel <> wrote:
    > 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.
    Goran Pusic, Sep 16, 2010
    #2
    1. Advertising

  3. gopesh patel

    gopesh patel Guest

    On Sep 16, 9:12 am, Goran Pusic <> wrote:
    > On Sep 16, 12:24 am, gopesh patel <> wrote:
    >
    > > 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.


    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 ?
    gopesh patel, Sep 16, 2010
    #3
  4. gopesh patel wrote:
    > On Sep 16, 9:12 am, Goran Pusic <> wrote:
    >> On Sep 16, 12:24 am, gopesh patel <> wrote:
    >>
    >>> 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.

    >
    > 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
    Stuart Golodetz, Sep 16, 2010
    #4
  5. gopesh patel

    gopesh patel Guest

    On Sep 16, 1:54 pm, Stuart Golodetz <> wrote:
    > gopesh patel wrote:
    > > On Sep 16, 9:12 am, Goran Pusic <> wrote:
    > >> On Sep 16, 12:24 am, gopesh patel <> wrote:

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

    >
    > > 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


    Thank you very much Stuart and all who cleared my question.
    gopesh patel, Sep 16, 2010
    #5
  6. gopesh patel wrote:
    > On Sep 16, 1:54 pm, Stuart Golodetz <> wrote:
    >> gopesh patel wrote:
    >>> On Sep 16, 9:12 am, Goran Pusic <> wrote:
    >>>> On Sep 16, 12:24 am, gopesh patel <> wrote:
    >>>>> 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.
    >>> 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

    >
    > 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
    Stuart Golodetz, Sep 16, 2010
    #6
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?UnVkeQ==?=

    to store or not to store an image

    =?Utf-8?B?UnVkeQ==?=, Mar 29, 2005, in forum: ASP .Net
    Replies:
    6
    Views:
    636
    =?Utf-8?B?UnVkeQ==?=
    Mar 30, 2005
  2. Jim Andersen
    Replies:
    3
    Views:
    4,345
    Jim Andersen
    Mar 2, 2006
  3. Johannes Zellner
    Replies:
    22
    Views:
    3,594
  4. John Nagle
    Replies:
    7
    Views:
    383
    Thomas Bellman
    Feb 6, 2007
  5. Naraendirakumar R.R.
    Replies:
    14
    Views:
    754
    Alexey Smirnov
    Jan 9, 2008
Loading...

Share This Page