类似于这种题,该如何写输入数据

对于下面这种题的输入数据应用怎么处理,我并不知道输入的数据有多少个,也不知道输入数据应该何时结束,那么应该怎么处理?
在牛客做笔试遇到好几次这种题目了,每次都一脸懵

将一个长度最多为30位数字的十进制非负整数转换为二进制数输出

输入描述:

多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)

输出描述: 每行输出对应的二进制数。

输入样例:

0
1
3
8

输出样例:

0
1
11
1000

把输入数据看作一组字符串,用strlen求字符串长度,然后设定相应量的数组来存储每一个字符。