c语言cstdio什么意思,<iostream>与<cstdio>有什么区别?

c语言cstdio什么意思,<iostream>与<cstdio>有什么区别?该楼层疑似违规已被系统折叠隐藏此楼查看此楼列个提纲:1.cstdio是面向“文件”的,或者不强调文件和非文件流的区别,默认流就是可以关联外部文件,至于文件的外延是啥就不管,扔给宿主环境了。从std::FILE这个名字以及printf/scanf接口描述基于fprintf/fscanf上就可以看出来。iostream头只是包含了一坨东西,封装标准输入输出流,和文件流(在)不通用。2.cstdio不…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

列个提纲:

1.cstdio是面向“文件”的,或者不强调文件和非文件流的区别,默认流就是可以关联外部文件,至于文件的外延是啥就不管,扔给宿主环境了。从std::FILE这个名字以及printf/scanf接口描述基于fprintf/fscanf上就可以看出来。

iostream头只是包含了一坨东西,封装标准输入输出流,和文件流(在)不通用。

2.cstdio不知道iostream,而iostream知道cstdio并且默认同步,此外提供有限的接口摆脱关系(sync_with_stdio)。因为这个接口约束,iostream要脱离cstdio(的实现)是不太可能的。

3.cstdio有orientation的概念;iostream是否wide是直接写死在静态类型的模板参数里的,并且底层的流不只支持char和wchar_t字符类型。

4.iostream底层公开了相对完整的缓冲接口(如std::basic_filebuf),可以自行扩展;cstdio只能笼统地设置缓冲模式和提供提供区的接口,但多了行缓冲的概念(_IOLBF)。

5.iostream和std::locale交互。C标准库的(对应C++的)提供locale-specific behavior,和cstdio不直接关联。两者不是一回事。

因为这个原因,iostream能直接编解码字符串,而cstdio不能处理和wide-oriented无关的编码,需要(对应C++的)或C11的的例程显式调用。

6.iostream体系提供了基于字符串提供了“内存流”(主要是std::stringstream),而cstdio这部分一般只是内部实现,如果需要得自己造。

7.iostream底层通过继承和重写protected虚函数提供实现。cstdio这部分是内部实现,不提供与之对应的扩展功能。

8.两者都实现了流的状态,但不尽相同。iostream显式区分bad和fail,但cstdio没有。

9.iostream提供特定的打开模式的组合,而cstdio使用字符串参数。前者无法直接扩展;后者解析较低效,虽然不需要修改类型就可扩展但也存在实现的运行时兼容性问题。

10.除了检查流的状态,iostream处理错误可选使用异常。cstdio处理错误依赖返回值和流状态。

11.iostream的格式输入输出基于重载,静态分派且类型安全,可以实现得更高效;cstdio的格式输入输出使用的是领域特定语言,需要运行时解析,通常比较低效,且实现的运行时兼容问题修复较困难。

但后者同时提供运行时配置可修改的格式的功能,而前者没有。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/234629.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SpringBoot整合JDBC、整合Druid数据源详解教程

    SpringBoot整合JDBC、整合Druid数据源详解教程目录一、整合JDBC1.环境准备1.创建数据库2.创建SpringBoot项目3.IDEA连接数据库2.编写数据库配置信息3.编写测试类测试4.CRUD操作数据库1.JDBCTemplate简介2.CRUD测试二、整合Druid数据源1.Druid简介2.部分基本配置参数3.使用Durid数据源1.导入依赖2.切换数据源3.设置数据源属性4.使添加属性生效5.配置Druid后台监控Servlet6.配置Druid监控过滤器filter一、整合JDBC1.环境准备.

  • HTML CSS整理笔记[通俗易懂]

    HTML CSS整理笔记[通俗易懂]常见字体单位:1.em移动端常用的字体尺寸单位,说白em就相当于“倍”,比如设置当前的div的字体大小为1.5em,则当前的div的字体大小为:当前div继承的字体大小*1.5。但当div进行嵌套时,em始终按当前div继承的字体大小来缩放。2.remr是root的意思,即相对于根节点html的font-size进行缩放,当有嵌套关系时,嵌套关系的元素的字体大小始终按照根节点的字体大小…

  • 小米10获取root权限_oppo A59s (全网通)一键ROOT获取ROOT权限

    小米10获取root权限_oppo A59s (全网通)一键ROOT获取ROOT权限很多小白机友问oppoA59s(全网通)如何获取ROOOT权限?oppoA59s(全网通)用什么ROOT工具比较靠谱?奇兔刷机小编给大家分享一篇oppoA59s(全网通)一键ROOT教程,简单几步,轻松搞定!具体步骤如下:  1.首先打开奇兔刷机软件,插好数据线,连接您的oppoA59s(全网通)手机,然后打开手机USB调试。  2.oppoA59s(全网…

  • 鼠标键盘事件有哪些_奇葩键盘

    鼠标键盘事件有哪些_奇葩键盘不会还有人没听过键盘事件吧

    2022年10月24日
  • 二元树中和为某一值的全部路径

    二元树中和为某一值的全部路径

    2021年11月29日
  • 支持向量机与支持向量回归(support vector machine and support vector regression)

    支持向量机与支持向量回归(support vector machine and support vector regression)支持向量机和支持向量回归是目前机器学习领域用得较多的方法,不管是人脸识别,字符识别,行为识别,姿态识别等,都可以看到它们的影子。在我的工作中,经常用到支持向量机和支持向量回归,然而,作为基本的理论,却没有认真地去梳理和总结,导致有些知识点没有彻底的弄明白。这篇博客主要就是想梳理一遍支持向量机和支持向量回归的基础理论知识,一个是笔记,另一个是交流学习,便于大家共勉。凸集、凸函数、凸优化凸集:如果集合…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号