【发布时间】:2020-07-09 23:07:44
【问题描述】:
我是编程新手,我想知道,我如何知道用户输入的整数的位数?例如:用户输入123456这样的数字,我怎么知道用户输入了6位数字?我不想使用for 循环来获取用户输入,因为我不希望用户在 space 或 enter 之后输入每个数字。
现在,我正在将一个数字转换为一个数字数组,以便我可以控制它们,但问题是我不知道我应该循环多少位,因为我不知道如何数字中有很多数字。
我可以将用户的输入作为字符串获取,然后使用string.length 并将其转换为数字数组吗?
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
while(N--)
{
int num;
cin >> num;
int arr[1000];
for (int i=0 ;i<???;i++)
{
arr.[i]=num%10;
num = num /10;
}
}
}
【问题讨论】:
-
注意:我不能从用户那里获取num中的元素个数
-
感谢安德烈亚斯的留言 :)
-
只是一个元评论:你已经得到解释如何做到这一点的答案。但请记住,integer 没有数字。它所拥有的只是一个价值。它的文本表示有数字。所以这里的问题可能是“如果我有一个整数值,如果我将它转换为文本,我最终会得到多少位数字?”。另一方面,正如答案所指出的那样,如果输入是文本,您需要做的就是计算字符数。将这些字符转换为整数值对解决方案没有任何帮助。
标签: c++