# Problem with conversion with stringstream ?

• 11-28-2008
franse
Problem with conversion with stringstream ?
I am using rand() to put random numbers between 1 - 10 and then I am counting how many of each of these numbers that appeard.
After this I am converting them to std::string and finally I try to display for:
a0 and a1 wich counts the numbers 1 and 2 how many of these that appeard.

Strange thing here is that when displaying the answer in the MessgeBox I could get number like, 506 or 1321564 or 477610 etc...
At maximum it should display 20 as this is the count of numbers that I put in vector FirstNumbers ?
I really wonder what I am missing out ?

Code:

```//Declare variables std::vector<int> FirstNumbers; int RandomNumber = 0; int Num0,Num1,Num2,Num3,Num4,Num5,Num6,Num7,Num8,Num9,Num10,Num11,Num12,Num13,Num14,Num15,Num16,Num17,Num18,Num118,Num19,Num20; std::string a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19;                         //Put Random Numbers beween 0-10 to vector for( int i = 0; i < 20; i++) {         RandomNumber = rand() &#37; 10; //1 - 10 Random         FirstNumbers.push_back(RandomNumber); }          /*...........................................................................................*/ //Count how many appearences of each Number for( std::vector<int>::iterator it = FirstNumbers.begin(); it != FirstNumbers.end(); it++) {                                        int Dummy5 = *it; //Count Numbers; if(Dummy5 == 0){Num0 = Num0+1;}if(Dummy5 == 1){Num1 = Num1+1;}if(Dummy5 == 2){Num2 = Num2+1;}if(Dummy5 == 3){Num3 = Num3+1;}if(Dummy5 == 4){Num4 = Num4+1;} if(Dummy5 == 5){Num5 = Num5+1;}if(Dummy5 == 6){Num6 = Num6+1;}if(Dummy5 == 7){Num7= Num7+1;}if(Dummy5 == 8){Num8 = Num8+1;}if(Dummy5 == 9){Num9 = Num9+1;} if(Dummy5 == 10){Num10 = Num10+1;}if(Dummy5 == 11){Num11 = Num11+1;}if(Dummy5 == 12){Num12 = Num12+1;}if(Dummy5 == 13){Num13 = Num13+1;}if(Dummy5 == 14){Num14 = Num14+1;} if(Dummy5 == 15){Num15 = Num15+1;}if(Dummy5 == 16){Num16 = Num16+1;}if(Dummy5 == 17){Num17 = Num17+1;}if(Dummy5 == 18){Num18 = Num18+1;}if(Dummy5 == 19){Num19 = Num19+1;}if(Dummy5 == 20){Num20 = Num20+1;} } //Convert to std::string                                    stringstream b1; b1 << Num0; a0 = b1.str(); stringstream b2; b2 << Num1; a1 = b2.str(); stringstream b3; b3 << Num2; a2 = b3.str(); stringstream b4; b4 << Num3; a3 = b4.str(); stringstream b5; b5 << Num4; a4 = b5.str(); stringstream b6; b6 << Num5; a5 = b6.str(); stringstream b7; b7 << Num6; a6 = b7.str(); stringstream b8; b8 << Num7; a7 = b8.str(); stringstream b9; b9 << Num8; a8 = b9.str(); stringstream c10; c10 << Num9; a9 = c10.str(); stringstream c11; c11 << Num10; b10 = c11.str(); stringstream c12; c12 << Num11; b11 = c12.str(); stringstream c13; c13 << Num12; b12 = c13.str(); stringstream c14; c14 << Num13; b13 = c14.str(); stringstream c15; c15 << Num14; b14 = c15.str(); stringstream c16; c16 << Num15; b15 = c16.str(); stringstream c17; c17 << Num16; b16 = c17.str(); stringstream c18; c18 << Num17; b17 = c18.str(); stringstream c19; c19 << Num18; b18 = c19.str(); stringstream d20; d20 << Num19; b19 = d20.str();                                   String^ s1 = gcnew String(a0.c_str()); MessageBox::Show(s1);                                                                 String^ s2 = gcnew String(a1.c_str()); MessageBox::Show(s2);```
• 11-28-2008
Elysia
Oh my goodness. Use arrays, dude. Use arrays!
• 11-28-2008
VirtualAce
Looks like .NET as well which even though I have a huge book on...have no interest in.
• 11-28-2008
anon
It looks like the variables are all uninitialized...
• 11-28-2008
franse
Yes ofcourse, I should have used arrays/vectors. This works fine now.
Thanks for direction.

Code:

```stringstream b1; std::vector<int> Num(20); std::vector<string> a(20); for( int i = 0; i < 20; i++ ) {                 b1.str("");                 stringstream b1; b1 << Num[i]; a[i] = b1.str(); }```
• 11-28-2008
Elysia
That was about, what 100 lines reduced to about... 8? Arrays really do work wonders, do they not?
And thankfully, vectors initialized its elements to 0. Lucky for you.
Unlucky for you when you thought ints would, too.
• 11-28-2008
franse
They do wonder really, this simplified the code very much.
I will think about that in the future code I am doing to :)