gopesh patel wrote:
> On Sep 16, 1:54 pm, Stuart Golodetz <b...@blah.com> wrote:
>> gopesh patel wrote:
>>> On Sep 16, 9:12 am, Goran Pusic <gor...@cse-semaphore.com> wrote:
>>>> On Sep 16, 12:24 am, gopesh patel <patelgop...@gmail.com> 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:
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:

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