|
C语言类型
scanf函数
当使用%d作为进行取值的类型的时候,会忽略\n 空格 ,%f也是如此,而其他作为取值类型的时候则不会忽略\n 空格 而是会作为字符进行输入
当其他类型也需要忽略的时候,我们可以对缓冲区进行清除,从而达到忽略的效果
rewind(stdin);清除缓冲区空间
缓冲区 C语言的缓冲三特征
| 全缓冲 | 这种情况下,当填满标准I/O缓存后才进行实际I/O操作的时候。全缓冲的典型代表是对于磁盘文件的读写 | | 行缓冲 | 在这种情况下,当在输入和输出中遇到换行符的时候,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行的时候才进行实际的I/O操作。典型代表是标准输入和标准输出 | | 不带缓冲 | 也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来 |
scanf循环读取
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,ret;
while((ret=scanf("%d",&i))!=EOF)
{
printf("i = %d\n",i);
}
system("pause");
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,ret;
while(fflush(stdin),(ret=scanf("%d",&i))!=EOF)
{
printf("i = %d\n",i);
}
system("pause");
}
|