割り当ての場合、そのごく一部は、整数の長さが5桁でなければならないことを示しています。1234567などの整数を入力すると、結果は34567になります。
scanfでこれを直接設定する方法はありますか?もちろん、5つの整数のみを読み取るように設定するのは簡単ですが、右端の5つだけを読み取ることはできません。これに設定できるフラグなどはありますか、それとも後でハックループを実行する必要がありますか?
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);
右端の桁を持つような事前定義された数量詞はありません。必要な出力を表示するために、独自のループを作成する必要があります。