我对函数scanf
以及输入在C中的工作方式感到很困惑。
请参阅此代码:
#include<stdio.h>
int main()
{
FILE pt = *stdin;
char b[100];
scanf("%s", b);
scanf("%s", b); //breakpoint here
scanf(" "); //breakpoint here
}
代码运行时,我将12345
输入控制台。我发现pt _ptr
(我实际上并不知道它是什么)的值为"12345\n\n"
而b[]
的值为"12345"
。
然后我继续该程序并输入23456
。现在pt _ptr
为"23456\n\n"
,b[]
为"23456"
。
我的问题:
pt _ptr
的值"12345\n\n"
不是"12345\n"
,因为我只按了一次输入(似乎函数scanf
跳过了这两个\n
已成功阅读"12345"
)。