对于赋值,它的一小部分表示整数只能是五位数字。如果输入一个整数,例如 1234567,那么结果应该是 34567。
有什么办法可以直接用scanf设置吗?当然,将它设置为只读取五个整数很容易,但它不会读取最右边的五个。是否可以为此设置标志或其他东西,还是我必须在之后做一些骇人听闻的循环?
您可以使用 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;
}
也许像这样
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);
没有这样的预定义量词具有最右边的数字。你必须编写自己的循环来显示你想要的输出。