当我在数字前输入“0”时出现错误
Bug when i input "0" before the number
当我想在数字前输入 0
时遇到问题,但是当我只输入数字时一切正常。
#include <iostream>
#include <stdio.h>
int main()
{
int input, output;
printf("Enter number : ");
scanf("%i",&input);
output = input % 7;
printf("%i", output);
return 0;
}
例如:
- 当我输入
8
时,输出是 1
。但是当我输入 08
时,输出是 0
- 当我输入
100
时,输出是 2
。但是当我输入 0100
时,输出是 1
我知道在数字前不要输入 0
会更快,但我想知道是否可以在数字前输入 0
而不会出现错误。
我在 Windows 10 x64 上使用 Code::Blocks 16.01 (MinGW)。
将 %i
与带前缀的 0
(08
、0100
等)结合使用会使 scanf
将输入解释为八进制数这是基数 8,而不是基数 10。如果你想 scanf
忽略它,你应该使用 %d
代替。
当我想在数字前输入 0
时遇到问题,但是当我只输入数字时一切正常。
#include <iostream>
#include <stdio.h>
int main()
{
int input, output;
printf("Enter number : ");
scanf("%i",&input);
output = input % 7;
printf("%i", output);
return 0;
}
例如:
- 当我输入
8
时,输出是1
。但是当我输入08
时,输出是0
- 当我输入
100
时,输出是2
。但是当我输入0100
时,输出是1
我知道在数字前不要输入 0
会更快,但我想知道是否可以在数字前输入 0
而不会出现错误。
我在 Windows 10 x64 上使用 Code::Blocks 16.01 (MinGW)。
将 %i
与带前缀的 0
(08
、0100
等)结合使用会使 scanf
将输入解释为八进制数这是基数 8,而不是基数 10。如果你想 scanf
忽略它,你应该使用 %d
代替。