C语言中scanf()和缓冲区

scanf()函数定义:

if (缓冲区为空)

调阻塞函数;

调赋值函数;

执行下面的代码:

for (i = 0;i < 10;i++)

{

scanf("%c",&ch);

printf("%c",ch);

}

代码执行过程:

1、调用第一个scanf()后,缓冲区为空,调用阻塞;

2、例如输入abcd(回车符)到缓冲区(回车符表示结束阻塞);

3、调赋值,将ch = a;并清除缓冲区的a值,将b作为缓冲区第一个值。然后结束第一个scanf();

4、调第一个printf();打印出a

5、调第二个scanf()后,检查到缓冲区不为空,调赋值。将ch = b;结束第二个scanf()

6、调第二个printf();打印出b

......



你可能感兴趣的:(LinuxC)