読者です 読者をやめる 読者になる 読者になる

unsigned int とstdin

C

unsigned int でも stdin だと負数の操作を受け付けるらしい.意味ない.
*最下部に追記: 出力で unsigned int を指定しなければならない.

#include <stdio.h>

int main()
{
    unsigned int S, E;
    scanf("%d%d", &S, &E);
    printf("S: %d  E: %d\n", S, E);
    return 0;
}
  • 標準入力
1148-1210
  • 標準出力
S: 1148  E: -1210

ideone.comでは
https://ideone.com/2jzJBk

[追記]
unsigned int は int と同じ操作を受け付ける.
よって,

#include <stdio.h>

int main()
{
    unsigned int S, E;
    scanf("%d%d", &S, &E);
    printf("S: %d  E: %u\n", S, E);
    return 0;
}
S: 1148  E: 4294966086
  • ダメな例
#include <stdio.h>

int main()
{
    unsigned int S, E;
    scanf("%d%u", &S, &E);
    printf("S: %d  E: %d\n", S, E);
    return 0;
}
S: 1148  E: -1210