I'm quite confused about the function scanf
and how the input works in C.
See this code :
#include<stdio.h>
int main()
{
FILE pt = *stdin;
char b[100];
scanf("%s", b);
scanf("%s", b); //breakpoint here
scanf(" "); //breakpoint here
}
When the code runs, I input 12345
into the console. I found that pt _ptr
(which I don't actually know what it is) has the value "12345\n\n"
and b[]
has the value "12345"
.
Then I continue the program and input 23456
. Now pt _ptr
is "23456\n\n"
and b[]
is "23456"
.
My question :
- How does the input work in C? Why does
pt _ptr
have the value of"12345\n\n"
not"12345\n"
since I pressed enter only one time(and it seems like the functionscanf
skips those two\n
after successfully read"12345"
).