【发布时间】:2018-08-08 10:08:05
【问题描述】:
我想知道如何获取long long 的长度。我有一个简单的函数,我试图获取long long 的长度,但我也得到了一个错误。
while (numberArray[i].length() > MAX_INPUT)
{
cout << "ERROR: Program can only take in a number length " << MAX_INPUT << " or less. Try again ->";
cin >> numberArray[i];
}
注意:numberArray 是一个静态的,被制成int。对.length() 的调用运行良好,但我想将类型更改为long long,现在.length() 似乎不再起作用了。
这是我每次尝试运行代码时从编译器得到的消息类型:
In function 'void takeNumbers(std::__cxx11::string&, long long int (&)[11], int)': main.cpp:48:26: error: request for member 'length' in 'numberArray[i]', which is of non-class type 'long long int' while (numberArray[i].length() > MAX_INPUT){
【问题讨论】:
-
你不能像在 C++ 中那样只获得整数的长度。您可以将数字转换为字符串,然后使用
std::to_string获取其长度。 -
在 C++ 中整数不能有成员函数,因为它们不是类。你认为
length()函数应该做什么?整数的“长度”是多少?您是否试图找到 long long 的最大值? -
注:当类型为
int时,它无法工作,因为你也不能在int上调用成员函数,它不是一个类,所以没有成员函数。 -
“长度”是一个用于表示数字的奇怪术语。任何数字都可以在 C++ 中以十进制、二进制、十六进制或八进制表示形式表示。我猜“长度”是指十进制表示中的位数?
标签: c++