scanf("%d",#num)的状态为0或1

Alg*_*bra -6 c

我遵循C Primer Plus的指示并编写以下代码:

#include <stdio.h>
int main(void) {
    int num;
    int x = scanf("%d", &num);
    printf("%d", x);
}   
Run Code Online (Sandbox Code Playgroud)

运行时:

$ ./a.out
t
0
$ ./a.out
2
1
Run Code Online (Sandbox Code Playgroud)

scanf如何检测值"0"或"1"?

div*_*man 5

它没有检测到该值,而是返回它.它读取一个整数并将其放入其中num.返回值scanf不是它从用户输入读取的值,而是读取的值的数量,在您的情况下,最大值为1.