C语言stdout,stdin流介绍

C语言stdout,stdin流介绍stdout stdin stderr 是一个 C 程序中默认开启的三个数据流 文章只介绍 stdout stdin stdout 标准输出流屏幕 stdin 标准输入流键盘 stderr

大家好,欢迎来到IT知识分享网。

stdout,stdin, stderr是一个C程序中默认开启的三个数据流(文章只介绍stdout, stdin.)

stdout — 标准输出流 — 屏幕

stdin — 标准输入流 — 键盘

stderr — 标准错误流 — 屏幕

我们写程序时,有时想把数据输出到屏幕上,有时想把数据输出到硬盘上,有时候想把数据输出到软盘上,有时想把数据输出到光盘上…

所以我们在写程序的时候会经常操控各种各样的硬件,硬件的不同,读写方式也不同,所以我们难道要懂得各种各样硬件的读写方式吗

所以在程序和硬件中间高度抽象了一个流的概念,我们只需要把数据丢给流,它帮我们来完成对应硬件的读写方式,我们就便利了许多。

C语言stdout,stdin流介绍

一、stdout介绍

我们先看看printf()函数

C语言stdout,stdin流介绍

 函数

printf

int printf(const char* format, …);

将格式化数据打印到标准输出

将格式指向的C字符串写入标准输出(stdout)。如果格式包含格式说明符(以“%”开头的子序列),则格式后面的附加参数将被格式化并插入到结果字符串中,以替换其各自的说明符。

这里提到了将指向的C字符串写入标准输出,

我们写printf(“hello world!”);就自动输出到屏幕上,就是因为printf()函数默认把(格式化)字符串输出到stdout流,也就是屏幕上。

与fprintf()函数比较

C语言stdout,stdin流介绍

 函数

fprintf

int fprintf(FILE* stream, const char* format, …);

将格式化的数据写入流

将格式指向的C字符串写入流。如果格式包含格式说明符(以“%”开头的子序列),则格式后面的附加参数将被格式化并插入到结果字符串中,以替换其各自的说明符。

在format参数之后,函数需要至少与format指定的数量相同的附加参数。

我们可以用printf()和fprintf()作对比

C语言stdout,stdin流介绍

C语言stdout,stdin流介绍

 fprintf()函数前面多了一个FILE* stream的参数,它表示的是流的意思。 前面说过,printf()是默认输出到stdout流,这里的fprintf()函数就可以自己设置输出到哪个流。

如果fprintf()函数的第一个参数是stdout, 可以等价于printf()函数。

二、stdin介绍

我们来看看scanf()函数和fscanf()函数的区别

C语言stdout,stdin流介绍

函数

sacnf

int scanf(const char* format, …);

从标准输入读取格式化数据

从stdin读取数据,并根据参数格式将其存储到附加参数所指向的位置。

附加参数应指向已分配的对象,该对象的类型由格式字符串中相应的格式说明符指定。

C语言stdout,stdin流介绍

函数

fsacnf

int fscanf(FILE* stream, const char* format, …);

从流中读取格式化数据

从流读取格式化数据从流读取数据,并根据参数格式将其存储到附加参数所指向的位置。

附加参数应指向已分配的对象,该对象的类型由格式字符串中相应的格式说明符指定。

我们不难得出,fscanf()函数的范围更加广一些,我们可以把第一个参数写成文件指针,那么我们可以从一个文件中读取到信息(fprintf()函数也可以第一个参数位文件指针,可以输出到文件当中,就不会显示到我们的屏幕上)。

当然,也可以是stdin,这和scanf()函数等价。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/135362.html

(0)
上一篇 2024-11-23 14:33
下一篇 2024-11-23 14:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信