對於賦值,它的一小部分表示整數只能是五位數字。如果輸入整數如1234567,那麼結果應該是34567.scanf中的右對齊寬度修飾符?
有沒有什麼方法可以直接用scanf設置?當然,將它設置爲僅讀取五個整數很容易,但它不會讀取最右邊的五個整數。有沒有一個標誌或一些可以爲此設置的東西,還是我必須做一些後來的hackish循環?
對於賦值,它的一小部分表示整數只能是五位數字。如果輸入整數如1234567,那麼結果應該是34567.scanf中的右對齊寬度修飾符?
有沒有什麼方法可以直接用scanf設置?當然,將它設置爲僅讀取五個整數很容易,但它不會讀取最右邊的五個整數。有沒有一個標誌或一些可以爲此設置的東西,還是我必須做一些後來的hackish循環?
你可以使用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);
沒有這樣的預定義的量詞擁有最右邊的數字。你必須編寫自己的循環來顯示你想要的輸出。
如果輸入七位數字,則不起作用 - 我試過了。或者它正在工作......很奇怪? – user1661781