【发布时间】:2017-09-22 15:10:43
【问题描述】:
当我想在数字前输入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)。
【问题讨论】:
-
如果输入前导 0,则选择数字的八进制表示,例如八进制的 0100 与十进制表示的 64 相同。 64 % 7 = 1。因此,这不是错误。
-
@camelCase 我明白了,但我想知道我是否可以在数字前输入“0”而不将其更改为八进制(保持为十进制/基数 10)
-
@sandyKhosasi 使用
%d。 -
scanf是邪恶的。
标签: c++ codeblocks