1
我想將用戶輸入流中的值賦給變量M和N.如果我指定了M和N類型的int,我可以讓我的代碼工作。但是,當我使用stdint.h指定它們爲int16_t時,它將讀取第一個值,但不會讀取最後一個值。爲什麼是這樣?爲什麼類型int使用sscanf但int16_t不能?
這裏的代碼工作就好了... ...
#include <stdio.h>
#include <stdint.h>
int main(void)
{
char str[10];
int M, N;
fgets(str, 10, stdin);
sscanf(str, "%d%d", &M, &N);
printf("M is: %d\n", M);
printf("N is: %d\n", N);
return 0;
}
這是行不通的。
#include <stdio.h>
#include <stdint.h>
int main(void)
{
char str[10];
int16_t M, N;
fgets(str, 10, stdin);
sscanf(str, "%d%d", &M, &N);
printf("M is: %d\n", M);
printf("N is: %d\n", N);
return 0;
}
[printf格式說明符for uint32 \ _t和size \ _t]的可能重複(http://stackoverflow.com/questions/3168275/printf-format-specifiers-for-uint32-t-and-size-t) –
tl; dr您沒有使用正確的格式說明符。 –
如果您認爲任何答案已解決您的問題,請考慮接受它(答案左側的綠色複選標記)。這將向社區表明,該問題已得到解答,並將爲您和回答者提供一些聲譽。 – 2501