对于赋值,其中一小部分表示整数必须只有五位数。如果输入一个整数,如1234567,则结果应为34567。
有什么方法可以直接用scanf设置吗?当然,将其设置为只读取五个整数很容易,但它不会读取最右边的五个。是否有可以为此设置的标志或其他东西,或者之后我是否必须做一些hackish循环?
答案 0 :(得分:1)
您可以使用mod运算符。 int m = enteredNumber % 100000;
这会截断你的号码。
这里......我试过了。
#include <math.h>
int main(int argc, char** argv)
{
char* number = "12334567";
int numberAsInt = atoi(number);
int shorterNumber = numberAsInt % 100000;
printf("The number is %d\n", shorterNumber);
return 0;
}
答案 1 :(得分:0)
也许就像这样
char* number = "1234567";
int val = 0;
int len = 0;
int ofset = 0;
len = strlen(number);
if ( len > 5) {
ofset = len - 5;
}
sscanf(number + ofset, "%d", &val);
printf("result: %d", val);
答案 2 :(得分:0)
没有这样的预定义量词可以拥有最正确的数字。你必须编写自己的循环来显示你想要的输出。