Конкатенацию ряда чисел

Я новичок так что особо не бейте.

Как в плюсах сделать конкатенацию ряда чисел получаемого из некоего источника? Например пусть будет из цикла for по 1 однозначному числу за итерацию.

srand(time(0));
for(int i=0; i<8; i++){
    cout << rand() % 9;
}

В результате собранное число должно находится в обычной переменной типа int.

Какие существуют варианты?


Ответы (1 шт):

Автор решения: Komdosh

В 10ичной системе счисления основание 10, надо умножать, имеющееся число, на это основание и только затем прибавлять новую цифру.

srand(time(0));
int num = 0;
for(int i=0; i<8; i++){
    num *= 10;
    num += rand() % 9;
}
cout << num << endl;
  • 0
  • 0 -> 0*10 -> 0 + rand()%9 { допустим 8 }
  • 8 -> 8*10 -> 80 + rand()%9 { допустим 7 }
  • 87 -> 87*10 -> 870 + rand()%9

P.S. Автор в комментариях просит сравнение результатов

srand(0);
for(int i=0; i<8; i++){
    cout << rand() % 9;
}
cout << endl;

srand(0);
int num = 0;
for(int i=0; i<8; i++){
    num *= 10;
    num += rand() % 9;
}
cout << num << endl;
→ Ссылка