在C++中,如果我们输入一个包含前导zereos的整数,它们将会出现任何错误。包含前导零的输入
为如:
int a;
cin>>a;
我们举一个输入00或01
或用绳子的帮助下,这是一个更好的主意输入查询。
在C++中,如果我们输入一个包含前导zereos的整数,它们将会出现任何错误。包含前导零的输入
为如:
int a;
cin>>a;
我们举一个输入00或01
或用绳子的帮助下,这是一个更好的主意输入查询。
整数(或浮点数)没有前导零。如果你想保持前导零,那么你必须将输入作为字符串读取,并在需要时将其转换为数字。或者,您可以使用格式化打印结果时添加前导零。
八进制或十六进制文字? – juanchopanza
但是,如果我们输入0001或0022它将保留1和22 – user1484638
@juanchopanza否和否,只有实际的数字存储在一个整数或浮点数。在存储器中存储的二进制数据中没有“前导零”的概念。 –
前导零将被删除。它不会被存储在内存中。
在C++中,如果我们输入一个包含前导zereos的整数,它们将会出现任何错误。
根据输入流格式标志的设置,您可能得不到您所期望的。默认值是希望用户输入始终为十进制。前导零不起作用。如果我们通过拨打std::cin.unsetf()
来关闭它,该怎么办?
int main() {
int i;
std::cin.unsetf (std::ios::dec);
while (std::cin >> ii) {
std::cout << i << "\n";
}
}
输出将是25,如果你输入25,但如果你输入025的输出为21。这是因为C++现在解释一个领先的输入零意味着以下是八进制数(或十六进制在前导0x或前导0X的情况下)。
我没有看到尝试它的困难。 – chris
您是否需要保留前导零? – jxh
我试过了,似乎therir是没有错误,但只是想检查 – user1484638