printf("%d",scanf("%d",&a)) gives always 1 .Can any one tell what is the actual logic behind that?
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
printf("%d",scanf("%d",&a)) gives always 1 .Can any one tell what is the actual logic behind that?
Name |
---|
printf
returns the number of items of the argument list successfully filled normally, in this case the return value is 1.For more, view the section "Return Value" on this page.
It is not necessary 1, obviously the answer is the output of scanf(...), and if it works properly it is all the variables it could, read or -1 in eof
scanf returns the number of read items.
1 means true
No, it doesn't! 1 is the number of read elements.
If you write
printf("%d",scanf("%d%d",&a,&b))
it will give 2