You don't need to know the size of the input per say:
If we do:
>,[>]
This is a simplified version:
Each digit will be in a cell, so for example reading the input 123, your memory will look like this: 0 49 50 51 0, and the tape will be pointing at the 5th cell. All you have to do now is deduct 48 from each of the non zero cells to get the actual integer value.
After that you have to multiply and add the right most by 1, then by 1*10, then by 1*10*10 etc.. until you reach the 0.
After reaching 0 49 50 51 0, you can go back to the first cell (49) by doing <[<]>, you don't actually need to know how many cells are occupied.
Check @JohnAudi's code first line he did something similar