在c ++中,如果我们输入一个包含前导zereos的整数,它们将是任何错误。
例如:
int a;
cin>>a;
我们输入00或01。
或者在字符串的帮助下输入这个是一个更好的主意。
答案 0 :(得分:4)
整数(或浮点数)没有前导零。如果要保留前导零,则必须将输入作为字符串读取,并在需要时将其转换为数字。或者,您可以在打印结果时使用格式设置添加前导零。
答案 1 :(得分:3)
在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)。
答案 2 :(得分:0)
领先的零将被削减。它不会存储在内存中。