1
변수 M과 N에 사용자 입력 스트림의 값을 할당하려고합니다. int 유형의 M과 N을 지정하면 작동하도록 코드를 가져올 수 있습니다. 그러나 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;
}
가능한 [uint32 \ _t 및 size \ _t의 printf 형식 지정자] (http://stackoverflow.com/questions/3168275/printf-format-specifiers-for-uint32-t-and-size-t)의 가능한 복제본 –
tl; dr 올바른 형식 지정자를 사용하고 있지 않습니다. –
어떤 대답으로도 문제가 해결되었다고 생각되면 그것을 수락하는 것을 고려해보십시오 (답의 왼쪽에있는 녹색 체크 표시). 그러면 커뮤니티에 질문에 대한 대답이 표시되고 답변자와 응답자에게 약간의 평판이 부여됩니다. – 2501