文件
- 数据流:指程序与数据交互是以流的形式进行的。进行C语言文件的存取时,都会进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数据流。
- 缓冲区:指在程序执行时,所提供的一块存储空间(在内存中),可用来暂时存放做准备执行的数据,它的设置就是为了提高存储效率,因为内存的存取速度比磁盘驱动器快得多。
C语言的文件的处理功能依据系统是否设置“缓冲区”,分为两种:一种是设置缓冲区,另一种是不设置缓冲区。由于不设置缓冲区的文件处理方式,必须使用较低级别的I/O函数(包含在头文件io.h和fcntl.h中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C标准函数,跨平台操作容易出现问题。下面只介绍第一种处理方式,即设置缓冲区的文件处理方式。
当使用标准I/O函数(包含在头文件stdio.h)时,系统会自动设置缓冲区,并通过数据流来读写文件,当进行文件读取时,不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区,然后程序再从缓冲区中读取所需要的数据,如下图所示:
C语言提供的标准文件
通常把显示器称为标准输出文件,printf就是向这个文件输出数据;putchar
通常把键盘称为标准输入文件,scanf就是从这个文件读取数据,getchar
#include<stdbool.h>
#include<stdio.h>
#include<math.h>
// 1sum
// 2scanf();getchar
// \n
int main()
{
int sum = 0;
char ch = '\0';
while(getchar() !=‘\n’)
{
sun++;
}
printf("sum: %d \n",sum);
return 0;
}