所以我想存儲已經從鍵盤讀入整數的樣品C.用戶輸入數組int類型:閱讀整數從緩衝區到C中的數組
8 99 5 7 8
變量聲明:
int k;
int size;
char buf[100];
上面是我的緩衝區和其他變量的數組。 以下是讀入緩衝區的整數。
printf("Please enter in the numbers for the array:\n");
fgets(buf, 100, stdin);
buf[strlen(buf) - 1] = '\0';
size = (strlen(buf)/2)+1;
int *array = (int *)malloc(sizeof(int)*size);
因此,正確分配我的數組。
int i, j;
for(i = 0, j = 0; i < size; i++, j = j+2)
{
array[i] = buf[j] - '0';
}
上面的代碼實際工作,但不適合有雙位數的數字,僅低於10及以上的0號我如何解決我的代碼,使我在正確的整數讀? 我試圖做一個for
循環與sscanf
,但只是導致只有在所有元素中輸入的第一個整數數組。
你可能想看看'strtol()'。 – EOF
@EOF你的意思是'strtok()'? – MikeCAT
注意:他們說[你不應該在C]中拋出'malloc()'的結果(http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc)。 – MikeCAT