前言
流:程序的数据输出到各种外部设备,也需要从外部设备获取数据,在不同的外部设备,输入输出的操作各不相同,为了方便程序员对各种设备进行方便的操作,抽象出了流的概念,可以比较流淌着字符的河。在c程序中,文件操作,画面,键盘等的数据输入输出都是通过流的操作。
标准流:
我们在启动程序的时候,会默认打开3个流:
stdin:标准输入流,在很多情况下我们都是从键盘输入数据的。
stdout:标准输出流,在大多环境中输出到显示屏界面。
stderr :标准错误流,大多情况下直接输出到显示屏界面。
1.scanf与printf
scanf针对的是标准输入流(键盘)的输入函数。
功能:从(键盘)标准输入流读取格式化的数据。

printf针对的是标准输出流(屏幕)的输出函数。
功能:将格式化的数据打印到标准输出流上。

2.fscanf和fprintf
fscanf和fprintf函数适用于所用输入流,输出流。(比scanf多了文件流)。
fprintf比printf多一个参数,第一个参数就是要输出的目标位置,其余跟printf一致。

在文件操作中,我们可以用fprintf输出到文件上。功能与printf基本相同,只不过fprintf可以输出到文件上。
例子:
int main()
{
FILE* pwrite = fopen("data.txt", "w");
if (pwrite == NULL) {
perror("fopen fail");
exit(1);
}
char arr[] = "abcdef";
fprintf(pwrite, "%s", arr);
pwrite = NULL;
return 0;
}

fscanf同样也有三个参数
int fscanf ( FILE * stream, const char * format, ... );功能:从一个流中执行格式化输入,fscanf遇到空格和换行时结束。
第一个参数stream:文件指针;
第二个参数format:格式描述;
随后是数目不定的指针参数,存储解析后的数据.
通过fscanf,我们可以把文件中的数据格式化输入字符数组中。

3.sscanf和sprintf
1. sprintf可以把一个格式化的数据转化成字符串
例:
2. sscanf可以从字符串中读取一个格式化的数据
本文介绍了C语言中的流概念,重点讲解了标准输入流stdin、标准输出流stdout和标准错误流stderr的应用。此外,还详细阐述了scanf,printf,fscanf,fprintf这些用于数据输入输出的函数,以及它们在文件操作中的应用,如fwrite用于输出到文件,fscanf用于格式化输入。
550





